日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

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

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

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();

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

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

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

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

private readonly static object s_syncObj = new();

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

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

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

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

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

狀態

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。