亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C# 8.0新特性介紹

2019-10-29 21:08:59
字體:
來源:轉載
供稿:網友

C# 語言是在2000發布的,至今已正式發布了7個版本,每個版本都包含了許多令人興奮的新特性和功能更新。同時,C# 每個版本的發布都與同時期的 Visual Studio 以及 .NET 運行時版本高度耦合,這也有助于開發者更好的學習掌握 C#,并將其與 Visual Studio 以及 .NET 的使用結合起來。

c#,8.0,新特性

加快 C# 版本的發布速度

在被稱為“新微軟”的推動下,微軟創新的步伐也加快了。為了做到加快步伐,微軟開發部門將一些過去集成在一起的技術現在都分離了出來。

Visual Studio、.NET Framework、.NET 運行時、編譯器和編譯運行時的運行語言都被拆分成自己的包和版本,這意味著以上每一個都可以按照自己的節奏發布了?,F在,我們已經看到了這種模式的成功。.NET Core 2.0 的工作已經完成了,并從 Visual Studio 發布出來,同時也增加了對 Linux 的支持。幾乎與 .NET Core 2 發布的同時,C# 7.1 版本也發布了。

C# 7.1 是一個重要的發布版本,雖然新功能不多,但它卻是 C# 第7個大版本的開始。C# 7.2 版本的工作已經展開了,同時也在計劃著 C# 7.3 版本。盡管 C# 8.0 版本還有點遠,但是微軟技術人員已經對 C# 8.0 版本的特性有了一些想法。

語言設計的討論是公開的,圍繞 C# 8.0 版本新特性的問題部分也進行了廣泛的討論。檢查每個發行版本的里程碑,同時也為未來的 C# 路線圖做好評估。

下面正式開始介紹 C# 8.0 版本中令人興奮的三個新特性。

非空和可空的引用類型

C# 有兩大變量類型:基本類型和引用類型。原先的類型是 int、char 和 double。這些類型都不能接受 null 值。在不分配新值的情況下,創建一個新的 int 值,會導致 int 值為 0 而不是 null。C# 2.0 介紹了帶有“?”符號的變量原語的可空版本。因此,int?是 int 的一個版本,它可以接受空值。

另一方面,引用類型(如字符串這樣的對象)始終能夠接受 null 值,并將 null 作為默認值。這也帶了來一個缺點,就是可能導致應用程序中帶入空引用。

在 C# 8.0 中,將引用類型設為非空,成為了一個可選的特性。

為 C# 引入這樣的特性是很困難的,因為這為原本已經運行很好的代碼,引入了潛在的編譯錯誤。因此需要做的是,創建此功能的方法,而不是為開發人員帶來無法估量的工作量。

根據設計方案,C# 團隊決定采取一個允許開發者可以選擇可空引用類型的方法。這將是一個工程級別的設定,以便啟用對可空引用的驗證。一旦啟用,可接受 null 值的對象就需要使用?運算符進行聲明。

如下代碼:

String s = null;Console.Write(s);

這將引起警告,因為字符串不能接受空值。因此需要以下代碼:

String? s = null;Console.Write(s);

然而,上面代碼也會在Console拋出一個警告,寫的是不希望收到一個空字符串。事實上,原始代碼可能有錯誤,所以級聯警告可以幫助我們避免運行時錯誤。這是最有可能提高代碼質量的語言變化。

新的輕量級類:Records

C# 8.0 的一個很棒的新特性,是有一種新方式來創建一個被稱為 records 的類。這個類本質上是一個非常輕量級的類,是一個字段集合,能夠幫助快速創建 POCO 類型的對象,同時也可以解決比較對象是否相等時的關鍵問題。

例如,為銀行帳戶創建 record 類型:

class BankAccount(Guid Id, string Name, decimal Balance)

這是一種創建簡單類的很好的方法。

用 records 解決對象相等問題

在 C# 編程中,一個最難掌握的內容就是,將==運算符用于引用類型和原語之間的區別。

為了舉例說明,我們使用==對比兩個整數:

int I = 1;int j = 1;i == j //yields true

原語的值是相等的。但是,對于引用類型,卻不相等。

Object I = new Object();Object j = new Object();i == j //yields false

這是因為 C# 的引用類型比較會考慮引用相等,也就是說,只有當兩個對象是同一個對象才相等。records 類型提供了結構上的相等,等同于相等運算符。創建新 record 的語法非常簡潔,因為生成的對象是簡單的數據傳輸對象。

Records 是一個輕量級對象,使用起來非常方便。雖然 Records 不是語言的一個突破性的變化,但也是一個漸進的改進,值得歡迎。

默認接口實現

版本控制接口可能會令人懊惱, 因為它要求接口上的新方法來實現接口上的所有對象。隨著新方法添加到了接口中,實現它們的任務就落在了實現接口的各個類中。因為各個實現不必須共有同一個父類,添加到接口的方法就可以在各自的類中實現。

默認接口實現允許在接口中指定一個實現,只要它是接口上現有方法的函數實現的。下面再以銀行帳戶為例:

public interface IBankAccountManager{ void PerformTransaction(decimal amount, string reason);}

現在為了便于使用,我們想在銀行賬戶上提供明確的借方和信譽功能。通常我們會為接口添加這些功能并在所有的類中實現它們。

public interface IBankAccountManager{ void PerformTransaction(decimal amount, string reason);  void PerformDebit(decimal amount, string reason){   PerformTransaction(-1 * amount, $”Debit: {reason}”);  }   void PerformCredit(decimal amount, string reason){   PerformTransaction(amount, $”Credit: {reason}”);  } }

默認接口實現提供了一種強大的新方法來擴展實現接口的類,而無需重復代碼。只需遵從默認實現,許多接口的類的實現就可以得到大大簡化。

其它的 C# 8.0 新特性

正是因為這些新特性,才讓我們毫不懷疑這就是 C# 8.0。以下是其它一些 C# 8.0 新特性:

  • 提升擴展支持 – 這種提升不僅僅可以用于擴展方法,它還提供了對屬性、靜態方法和更多方面的支持。
  • 異步數據流 – 能夠擁有支持異步操作的枚舉值。包括新的 iasyncenumerable <T> 和 iasyncenumerator <T> 接口。
  • Async Disposable – iasyncdisposable 允許對象有一個異步的處理方法。 

結論

過去幾年中,.NET 的創新速度確實加快了。雖然 C# 8.0 目前還沒有實現,但是它比起 C# 7.0,將帶來很多有幫助的提升,讓我們一起期待 C# 8.0 的早日到來。

 

注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产97在线|亚洲| 国产精品久久久久久久天堂| 国产精品国产三级国产aⅴ9色| 91天堂在线观看| 国产免费一区视频观看免费| 一区二区日韩精品| 精品高清一区二区三区| 日韩高清电影免费观看完整版| 91高潮精品免费porn| 亚洲社区在线观看| 日韩成人av网址| 欧美成人一区在线| 国产97色在线|日韩| 亚洲国产精品久久久久秋霞蜜臀| 久久成人综合视频| 久久久久一本一区二区青青蜜月| 成人av资源在线播放| 国产欧美日韩中文字幕在线| 久久九九热免费视频| 日韩av在线网| 久久精品夜夜夜夜夜久久| 久久亚洲精品视频| 日韩免费中文字幕| 福利视频一区二区| 亚洲国产一区二区三区在线观看| 国内精品小视频在线观看| 日韩免费电影在线观看| 久久久精品在线观看| 亚洲香蕉av在线一区二区三区| 亚洲精品电影在线观看| 最新日韩中文字幕| 亚洲视频在线免费观看| 国产成人在线视频| 美日韩精品免费观看视频| 国产精品网址在线| 欧美一区二区影院| 综合网日日天干夜夜久久| 国产噜噜噜噜久久久久久久久| 亚洲天堂av综合网| 亚洲免费伊人电影在线观看av| 538国产精品一区二区在线| 不卡中文字幕av| 国产一区二区三区日韩欧美| 中文字幕日韩视频| 亚州国产精品久久久| 欧美日韩精品国产| 久久久国产一区二区三区| 亚洲免费av网址| 欧美激情极品视频| 国产一区二区视频在线观看| 亚洲精品99999| 高清日韩电视剧大全免费播放在线观看| 一道本无吗dⅴd在线播放一区| 97精品一区二区三区| 国产在线高清精品| 亚洲图片欧洲图片av| 免费91麻豆精品国产自产在线观看| 97国产精品视频人人做人人爱| 久久国产精品久久久久| 中文字幕在线成人| 精品一区二区三区四区| 日韩有码在线电影| 最近2019年好看中文字幕视频| 欧美理论电影在线观看| 午夜精品福利在线观看| 欧美麻豆久久久久久中文| 亚洲男人天堂九九视频| 亚洲国产精品成人精品| 97视频在线观看免费高清完整版在线观看| 日本精品va在线观看| 亚洲国产精品福利| 国内自拍欧美激情| 欧美怡春院一区二区三区| 5252色成人免费视频| 国内精品一区二区三区四区| 成人黄色免费片| 久久久精品视频在线观看| 日韩在线观看av| 久久天天躁夜夜躁狠狠躁2022| 国产精品成人一区二区| 亚洲一区美女视频在线观看免费| 日本视频久久久| 欧美老妇交乱视频| 久久久久久久久久国产精品| 奇米一区二区三区四区久久| 国产精品福利无圣光在线一区| 国产日韩欧美成人| 国产精品美乳一区二区免费| 欧美精品国产精品日韩精品| 国产欧美中文字幕| 成人两性免费视频| 亚洲第一福利视频| 国产精品一区二区久久国产| 日韩欧美黄色动漫| 精品丝袜一区二区三区| 性欧美在线看片a免费观看| 欧美xxxx18国产| 97精品在线观看| 成人网在线视频| 国产日产亚洲精品| 久久黄色av网站| 亚洲a∨日韩av高清在线观看| 高清欧美性猛交| 久久91精品国产91久久久| 久久国产精品电影| 热久久视久久精品18亚洲精品| 精品毛片网大全| 亚洲精品综合久久中文字幕| 亚洲自拍中文字幕| 欧美视频中文字幕在线| 人人做人人澡人人爽欧美| 亚洲激情 国产| 亚洲精品一区二区网址| 日韩麻豆第一页| 欧美乱妇高清无乱码| www.午夜精品| 97精品视频在线| 国产精品一区二区三区在线播放| 久久精品国产亚洲一区二区| 午夜精品久久久久久久99热| 午夜精品一区二区三区视频免费看| 91九色视频在线| 一本久久综合亚洲鲁鲁| 日韩在线欧美在线国产在线| 日韩在线观看你懂的| 国产精品一区二区久久国产| 91免费福利视频| 亚洲a级在线观看| 亚洲天堂av图片| 成年无码av片在线| 亚洲欧美在线播放| 一区二区三区动漫| 中文字幕视频一区二区在线有码| 人人做人人澡人人爽欧美| 国产91免费观看| 国产亚洲xxx| 日韩视频亚洲视频| 亚洲自拍另类欧美丝袜| 国产成+人+综合+亚洲欧洲| 欧美激情视频播放| 国产成人97精品免费看片| 美女久久久久久久| 精品久久久久久久久国产字幕| 欧美大秀在线观看| 日本一本a高清免费不卡| 欧美裸体视频网站| 亚洲香蕉伊综合在人在线视看| 国产精品视频免费在线观看| 欧美在线免费视频| 午夜精品一区二区三区在线视| 91亚洲精品在线观看| 成人福利网站在线观看11| 欧美激情小视频| 国产精品主播视频| 成人国内精品久久久久一区| 中文字幕av一区二区三区谷原希美| xxx成人少妇69| 国产亚洲一区二区精品| 久久香蕉国产线看观看网| 国产日韩欧美91| 国产日韩综合一区二区性色av| 国产精品极品在线| 亚洲视频精品在线| 亚洲字幕在线观看|