時間:2019-08-18 10:44:53 作者:johnnyl 瀏覽量:41
大家好,隨著人們對生活的質(zhì)量要求越來越高,電腦已經(jīng)成為人們生活和工作中的必需品,電腦是有很多軟件系統(tǒng)程序組成,如果想要學(xué)好電腦,我們必須對這些軟件系統(tǒng)程序有所了解,今天小編就帶領(lǐng)大家學(xué)習(xí)C# 的使用功能。歐洲五大聯(lián)賽即將開始!
如果你開始探索C#或決定擴(kuò)展你的知識,那么你應(yīng)該學(xué)習(xí)這些有用的語言功能,這樣做有助于簡化代碼,避免錯誤,節(jié)省大量的時間。歐洲五大聯(lián)賽即將開始!
C/C++使用功能教程圖1
1)async / await歐洲五大聯(lián)賽即將開始!
使用async / await-pattern允許在執(zhí)行阻塞操作時解除UI /當(dāng)前線程的阻塞。async / await-pattern的工作原理是讓代碼繼續(xù)執(zhí)行,即使在某些東西阻塞了執(zhí)行(如Web請求)的情況下。歐洲五大聯(lián)賽即將開始!
閱讀更多有關(guān)async / await-pattern的信息,
2)對象/數(shù)組/集合初始化器
通過使用對象、數(shù)組和集合初始化器,可以輕松地創(chuàng)建類、數(shù)組和集合的實(shí)例:
//一些演示類publicclassEmployee{ publicstringName {get;set;} publicDateTime StartDate {get;set;}}//使用初始化器創(chuàng)建employeeEmployee emp =newEmployee {Name="John Smith",StartDate=DateTime.Now()};
上面的例子在單元測試中才真正有用,但在其他上下文中應(yīng)該避免,因?yàn)轭惖膶?shí)例應(yīng)該使用構(gòu)造函數(shù)創(chuàng)建。歐洲五大聯(lián)賽即將開始!
3)Lambdas,謂詞,delegates和閉包歐洲五大聯(lián)賽即將開始!
在許多情況下(例如使用Linq時),這些功能實(shí)際上是必需的,確保學(xué)習(xí)何時以及如何使用它們。
閱讀更多關(guān)于Lambdas,謂詞,delegates和閉包的信息,
4)??(空合并運(yùn)算符)
?– 運(yùn)算符返回左側(cè),只要它不為null;那樣的情況下返回右側(cè):
//可能為nullvarsomeValue = service.GetValue();vardefaultValue =23//如果someValue為null,結(jié)果將為23varresult = someValue ?defaultValue;
?– 運(yùn)算符可以鏈接:歐洲五大聯(lián)賽即將開始!
stringanybody = parm1 ?localDefault ?globalDefault;
并且它可以用于將可空類型轉(zhuǎn)換為不可空:
vartotalPurchased = PurchaseQuantities.Sum(kvp => kvp.Value ??0);
閱讀更多有關(guān)?– 運(yùn)算符的信息,
5)$“{x}”(字符串插值) ——C#6
這是C#6的一個新功能,可以讓你用高效和優(yōu)雅的方式組裝字符串:
//舊方法varsomeString = String.Format("Some data: {0},some more data: {1}",someVariable,someOtherVariable);//新方法varsomeString =$"Some data: {someVariable},some more data: {someOtherVariable}";
你可以把C#表達(dá)式放在花括號之間,這使得此字符串插值非常強(qiáng)大。
6)?.(Null條件運(yùn)算符) ——C#6
null條件運(yùn)算符的工作方式如下:
//Nullifcustomerorcustomer.profileorcustomer.profile.ageisnullvar currentAge = customer?.profile?.age;
沒有更多NullReferenceExceptions!
閱讀更多有關(guān)?.-運(yùn)算符的信息,
7)nameof Expression ——C#6
新出來的nameof-expression可能看起來不重要,但它真的有它的價值。當(dāng)使用自動重構(gòu)因子工具(如ReSharper)時,你有時需要通過名稱引用方法參數(shù):
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"); //...}
你應(yīng)該這樣使用它…
public void PrintUserName(User currentUser){ //The refactoring tool will not miss this... if(currentUser ==null) _logger.Error($"Argument {nameof(currentUser)} is not provided"); //...}
閱讀更多有關(guān)nameof-expression的信息,
8)屬性初始化器 ——C#6