為什麼 Visual Studio 會將新建立的陣列鍵入為 Nullable?
在 C# 中宣告新陣列時,Visual Studio 可能會建議新增?運算子來指示該類型可能可為空。這可能會令人驚訝,因為您希望新實例化的陣列始終具有非空值。
可為空引用型別
在 C# 8.0 及更高版本中,可為空引用型別變得可用。此功能允許您使用 ? 註釋引用類型。指示可以為它們指派空值。啟用後,編譯器將檢查潛在的空引用並相應地發出警告或錯誤。
隱式鍵入
使用 var 關鍵字宣告變數時,類型是從初始化表達式推斷出來的。如果將數組分配給 var 變量,它將推斷類型為 TVal[]?,其中 TVal 是數組元素的類型。這是因為當啟用可為空上下文時,var 會推斷引用類型可為空引用類型。
可為空數組的原因
此行為的原因是 Visual Studio 嘗試請謹慎並警惕潛在的空引用。雖然新建立的陣列確實不太可能為 null,但該陣列以後有可能變為 null,無論是明確(例如,為其指派 null)還是隱式(例如,將陣列大小調整為零長度)。
結論
雖然新建立的陣列為空的情況並不常見,但Visual Studio建議用? 對其進行註解運算符作為一種安全措施,以防止稍後在程式碼中出現潛在的空引用異常。如果您確定該陣列永遠不會被指派為 null,則可以安全地刪除 ?運算子。
以上是為什麼 Visual Studio 建議在 C# 中新建立的陣列使用可空類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!