如果你開始探索C#或決定擴展你的知識,那麼你應該學習這些有用的語言功能,這樣做有助於簡化程式碼,避免錯誤,節省大量的時間。
1)async / await
使用async / await-pattern允許在執行阻塞操作時解除UI /當前執行緒的阻塞。 async / await-pattern的工作原理是讓程式碼繼續執行,即使在某些東西阻塞了執行(如Web請求)的情況下。
2)物件/陣列/集合初始化器
透過使用物件、陣列和集合初始化器,可以輕鬆地建立類別、陣列和集合的實例:
🟎
? globalDefault;
並且它可以用於將可空類型轉換為不可空:
vartotalPurchased = PurchaseQuantities.Sum(kvp => kvp.Value ?? 0); {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
7)nameof Expression ——C#6
你應該這樣使用它… //The refactoring tool will not miss this...if(currentUser == null) _logger.Error( $"Argument {nameof(currentUser)}is not provided"); //...} 8)屬性初始化器— —C#6
屬性初始化器允許你宣告屬性的初始值:
使用屬性器的一個好處是你不能聲明一個集合:嗯,因此使得屬性不可變。屬性初始化器與C#6主要建構函式語法一起運作。
9)as和is 運算子
條目的IEnumerable介面。以下範例將傳回每個2的冪,冪指數從2到8(例如,2,4,8,16,32,64,128,256):
publicstaticIEnumerable Power(intnumber, intexponent){ intresult = 1 for; ( inti = 0; i
yield返回可以非常強大,如果它用於正確方式的話。它使你能夠懶惰地產生一系列對象,即,系統不必枚舉整個集合——它就會按需完成。
更多C# 中 10 個你真的應該學習(和使用!)的功能相關文章請關注PHP中文網!