為什麼 Visual Studio 會將新建立的陣列鍵入為 Nullable?
在 C# 中,對引用類型的變數使用 var 關鍵字會推斷出可空引用類型,如 C# 規範提案中所指定。這表示對於以下程式碼:
var zeroBased = new TVal[size];
Visual Studio 將建議:
TVal[]? zeroBased = new TVal[size];
The ?運算子指示該類型可能可為空。但是,您可能會假設用 new 建立的陣列永遠不會為空。因此,你可能會這樣寫:
TVal[] zeroBased = new TVal[size];
那麼,在 C# 中用 new 實例化的陣列可以回傳 null 嗎?
場景
一個陣列可能為空的情況是當它被分配給可為空類型的變數時。例如:
TVal[]? nullableArray = new TVal[size];
在這種情況下,陣列可以明確為 null,並且其值可以設定為 null。
另一種情況是使用 default 時,它會為型別。對於數組,這意味著一個長度為零且元素為空的數組。
TVal[]? defaultArray = default;
因此,在建立陣列時使用明確類型是一個很好的做法,特別是當您使用可空引用類型來避免潛在的空值。
以上是為什麼 Visual Studio 建議為 C# 中新建立的陣列使用可空類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!