首页 百科知识 #中个你真的应该学习和使用的功能

#中个你真的应该学习和使用的功能

时间:2022-09-18 百科知识 版权反馈
【摘要】:如果你开始探索C#或决定扩展你的知识,那么你应该学习这些有用的语言功能,这样做有助于简化代码,避免错误,节省大量的时间。使用async / await-pattern允许在执行阻塞操作时解除UI /当前线程的阻塞。async / await-pattern的工作原理是让代码继续执行,即使在某些东西阻塞了执行的情况下。属性初始化器允许你声明属性的初始值。使用属性初始化器的一个好处是你不能声明一个集合:嗯,因此使得属性不可变。yield返回可以非常强大,如果它用于正确方式的话。

    如果你开始探索C#或决定扩展你的知识,那么你应该学习这些有用的语言功能,这样做有助于简化代码,避免错误,节省大量的时间。

1)async / await

    使用async / await-pattern允许在执行阻塞操作时解除UI /当前线程的阻塞。async / await-pattern的工作原理是让代码继续执行,即使在某些东西阻塞了执行(如Web请求)的情况下。

2)对象/数组/集合初始化器

    通过使用对象、数组和集合初始化器,可以轻松地创建类、数组和集合。

3)Lambdas,谓词,delegates和闭包

    在许多情况下(例如使用Linq时),这些功能实际上是必需的,确保学习何时以及如何使用它们。

4)??(空合并运算符)

??  运算符返回左侧,只要它不为null;

?? 运算符可以链接:

并且它可以用于将可空类型转换为不可空:

5)$“{x}”(字符串插值) ——C#6

    这是C#6的一个新功能,可以让你用高效和优雅的方式组装字符串:

你可以把C#表达式放在花括号之间,这使得此字符串插值非常强大。

null条件运算符的工作方式如下:

7)nameof Expression ——C#6

    新出来的nameof-expression可能看起来不重要,但它真的有它的价值。当使用自动重构因子工具(如ReSharper)时,你有时需要通过名称引用方法参数。

8)属性初始化器 ——C#6

    属性初始化器允许你声明属性的初始值。使用属性初始化器的一个好处是你不能声明一个集合:嗯,因此使得属性不可变。属性初始化器与C#6主要构造函数语法一起工作。

9)as和is运算符

    is 运算符用于控制实例是否是特定类型。使用as运算符尝试将实例转换为类。如果不能转换,它将返回null。

10)yieId关键字

    yield 关键字允许提供带有条目的IEnumerable接口yield返回可以非常强大,如果它用于正确方式的话。 它使你能够懒惰地生成一系列对象,即,系统不必枚举整个集合——它就会按需完成。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈