时间:2019-08-18 10:44:53 作者:johnnyl 浏览量:41
大家好,随着人们对生活的质量要求越来越高,电脑已经成为人们生活和工作中的必需品,电脑是有很多软件系统程序组成,如果想要学好电脑,我们必须对这些软件系统程序有所了解,今天小编就带领大家学习C# 的使用功能。欧洲五大联赛即将开始!
如果你开始探索C#或决定扩展你的知识,那么你应该学习这些有用的语言功能,这样做有助于简化代码,避免错误,节省大量的时间。欧洲五大联赛即将开始!
C/C++使用功能教程图1
1)async / await欧洲五大联赛即将开始!
使用async / await-pattern允许在执行阻塞操作时解除UI /当前线程的阻塞。async / await-pattern的工作原理是让代码继续执行,即使在某些东西阻塞了执行(如Web请求)的情况下。欧洲五大联赛即将开始!
阅读更多有关async / await-pattern的信息,
2)对象/数组/集合初始化器
通过使用对象、数组和集合初始化器,可以轻松地创建类、数组和集合的实例:
//一些演示类publicclassEmployee{ publicstringName {get;set;} publicDateTime StartDate {get;set;}}//使用初始化器创建employeeEmployee emp =newEmployee {Name="John Smith",StartDate=DateTime.Now()};
上面的例子在单元测试中才真正有用,但在其他上下文中应该避免,因为类的实例应该使用构造函数创建。欧洲五大联赛即将开始!
3)Lambdas,谓词,delegates和闭包欧洲五大联赛即将开始!
在许多情况下(例如使用Linq时),这些功能实际上是必需的,确保学习何时以及如何使用它们。
阅读更多关于Lambdas,谓词,delegates和闭包的信息,
4)??(空合并运算符)
?– 运算符返回左侧,只要它不为null;那样的情况下返回右侧:
//可能为nullvarsomeValue = service.GetValue();vardefaultValue =23//如果someValue为null,结果将为23varresult = someValue ?defaultValue;
?– 运算符可以链接:欧洲五大联赛即将开始!
stringanybody = parm1 ?localDefault ?globalDefault;
并且它可以用于将可空类型转换为不可空:
vartotalPurchased = PurchaseQuantities.Sum(kvp => kvp.Value ??0);
阅读更多有关?– 运算符的信息,
5)$“{x}”(字符串插值) ——C#6
这是C#6的一个新功能,可以让你用高效和优雅的方式组装字符串:
//旧方法varsomeString = String.Format("Some data: {0},some more data: {1}",someVariable,someOtherVariable);//新方法varsomeString =$"Some data: {someVariable},some more data: {someOtherVariable}";
你可以把C#表达式放在花括号之间,这使得此字符串插值非常强大。
6)?.(Null条件运算符) ——C#6
null条件运算符的工作方式如下:
//Nullifcustomerorcustomer.profileorcustomer.profile.ageisnullvar currentAge = customer?.profile?.age;
没有更多NullReferenceExceptions!
阅读更多有关?.-运算符的信息,
7)nameof Expression ——C#6
新出来的nameof-expression可能看起来不重要,但它真的有它的价值。当使用自动重构因子工具(如ReSharper)时,你有时需要通过名称引用方法参数:
publicvoidPrintUserName(UsercurrentUser){ //The refactoring tool might miss the textual reference to current user belowifwe're renaming it if(currentUser == null) _logger.Error("Argument currentUser is not provided"); //...}
你应该这样使用它…
public void PrintUserName(User currentUser){ //The refactoring tool will not miss this... if(currentUser ==null) _logger.Error($"Argument {nameof(currentUser)} is not provided"); //...}
阅读更多有关nameof-expression的信息,
8)属性初始化器 ——C#6