C#语法糖

C#11引入了新的语法糖,如列表模式简化数组和列表匹配,null检查通过`!!`运算符增强,`?`运算符确保安全调用,以及`??`和`??=`提供空值处理。这些改进提高了代码的可读性和安全性,减少了潜在错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法糖,用简单的语句表达与之前代码相同的功能,运行结果前后一致保持不变。使代码清晰,语义简洁。写了之后很爽,也很甜,大家也称之为:一想之甜。

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。需要声明的是“语法糖”这个词绝非贬义词,它可以给我们带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

C# 11 语法糖示例:

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

比如,该模式匹配以下所有内容:[1, 2, .., 10]:

int[] arr1 = { 1, 2, 10 };
int[] arr1 = { 1, 2, 3, 10 };
int[] arr1 = { 1, 2, 3, 6, 7, 8, 9, 10 };

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

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

使用新的参数 null 检查,可以通过添加 !! 到参数名,自动执行空值检查:

public static void M(string para!!)
{
    //方法体
}

C#中的null类型检查运算符【?】这个运算符可以在调用一个可能为null的变量的字段、属性或方法时,自动进行空指针检查,避免抛出NullReferenceException异常。如果变量为null,那么就不会执行后面的操作,而是返回null。这样可以简化代码,提高可读性和安全性。

除了【?】运算符外,C#还有其他一些与null相关的运算符,比如:

【??】运算符,叫做空合并运算符,用于定义可空类型和引用类型的默认值。如果第一个操作数为null,则返回第二个操作数的值;否则返回第一个操作数的值12。
【??=】运算符,叫做空合并赋值运算符,用于将第二个操作数赋给第一个操作数,如果且仅当第一个操作数为null2。
【?.】和【?[]】运算符,叫做 null 条件成员访问 和 null 条件索引器 访问 运算符 ,用于在访问对象成员或元素时进行 null 检查,并且只在实例不为 null 时执行给定表达式1。

后续将会整理更多的语法糖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

polsnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值