日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 8的新提案:new关键字类型推断

發(fā)布時間:2025/6/17 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 8的新提案:new关键字类型推断 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在很多情況下,一個地方只允許出現(xiàn)一種可能的類型。C#仍然要求你明確列出類型,但如果目標類型“new”表達式提案被采用,那么就不再需要這些樣板代碼。

從表面上看,這個特性看起來與var關(guān)鍵字恰好相反。它不是根據(jù)表達式推斷出變量類型,而是從變量推斷出表達式的類型。以下是來自提案使用當前語法和建議語法的對比示例。

Dictionary\u0026lt;string, List\u0026lt;int\u0026gt;\u0026gt; field = new Dictionary\u0026lt;string, List\u0026lt;int\u0026gt;\u0026gt;();Dictionary\u0026lt;string, List\u0026lt;int\u0026gt;\u0026gt; field = new();

正如你所看到的,當它能夠從上下文中推斷出類型時,就不需要指定類型。對于局部變量可能沒有太大用處,但對于臨時參數(shù)來說卻很方便。

XmlReader.Create(reader, new XmlReaderSettings() { IgnoreWhitespace = true });XmlReader.Create(reader, new() { IgnoreWhitespace = true });

在上面的代碼中,XmlReaderSettings類只是用于持有傳給XmlReader的選項值。我們甚至可以說XmlReaderSettings的類型名稱對于它所持有的重要信息來說有點”反客為主“了。

這個特性另一個用武之地是不能使用var關(guān)鍵字的字段和屬性。例如:

private readonly static object s_syncObj = new();

根據(jù)提案,這個特性不能被用在四個地方。

  • 枚舉類型:并非所有枚舉類型都包含常量零,因此應(yīng)該使用顯式枚舉成員。

  • 接口類型:這是一個利基特性,最好要明確指定類型。

  • 數(shù)組類型:數(shù)組需要特殊的語法來表示長度。

  • 結(jié)構(gòu)體默認構(gòu)造函數(shù):它排除了所有基本類型和大多數(shù)值類型。如果你想使用這個類型的默認值,可以自己寫。

狀態(tài)

目前,Caller Expression Attribute被列在C# 8路線圖中,狀態(tài)為“Prototype”。特性測試計劃可在GitHub上找到。

查看英文原文:https://www.infoq.com/news/2019/01/c-sharp-targeted-type-new

總結(jié)

以上是生活随笔為你收集整理的C# 8的新提案:new关键字类型推断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。