分类 C# 下的文章

C#11预览:新的参数空值检查

C#11预览:新的参数空值检查

C# 11 提供了一种简化的语法,用于验证方法的参数不是 null ,以及正确抛出 ArgumentNullException

以前可以使用样板代码的变体来验证方法参数是否为空:

阅读剩余部分

C#11预览:列表模式

C#11预览:列表模式
新的 列表模式 允许将数组或列表与一系列模式匹配,例如 array is [1, 2, 3] 将匹配长度为 3 的整数数组,其元素分别为 1、2、3。除了允许匹配列表和数组,还可以匹配元素,且可以选择包含零个或多个元素的切片模式。使用切片模式可以丢弃或捕获零个或多个元素。

阅读剩余部分

C#11预览:允许在内插字符串的“插值表达式”中换行

C#11预览:允许在内插字符串的“插值表达式”中换行
内插字符串(interpolated strings)是 C# 6.0 引入的语法,它允许在字符串中插入表达式。C# 的内插字符串分为非逐字和逐字内插字符串(分别是 $"" 和 $@"")两种。两者最大的区别是:非逐字内插字符串与普通字符串一样,不能在字符串文本中包含换行符,必须使用转义符(如\r \n)。相反,逐字插值字符串可以在其文本段中包含换行符,并且不会转义换行符或其他字符。

阅读剩余部分

C#中的var理解

从 C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型一样。i 的以下两个声明在功能上是等效的:

var i = 10; 
int i = 10;

阅读剩余部分