Visual Studio が新しい配列に Null 許容の注釈を追加するのはなぜですか?
C# では、通常、new で配列を初期化すると、Null 非許容の型付きアノテーションが返されます。価値。ただし、Visual Studio (VS) のクイックフィックスを使用して var を明示的な型に置き換えた後、配列宣言に null 許容の注釈 (?) が含まれる可能性があります:
TVal[]? zeroBased = new TVal[size];
この注釈は、VS によって追加されました。これは、配列が null になる可能性があることを意味します。
C# およびVS
Nullable 型は、変数が Null 非許容値と Null 値の両方を表現できるようにするために C# 8.0 で導入された参照型です。プロジェクトで Nullable が有効になっている場合、または #nullable プラグマが使用されている場合、VS は、var で宣言された参照型変数に対して Null 許容参照型を推論する場合があります。この推論は、参照型である配列にも適用されます。
Nullable 注釈の理由
配列宣言内の Nullable 注釈は、VS によるコードの解釈の結果です。 。 C# 仕様によれば、null 許容コンテキストが有効な場合、var は参照型の null 許容参照型を推論します。これは、変数への null 代入の可能性を防ぐことを目的としていますが、var を使用する場合にはこれがあまり明らかではありません。
影響と使用法
ほとんどの場合、新しく追加されたオブジェクトの null 許容アノテーションは、作成した配列は不要です。 new で初期化された配列は null でないことが保証されます。ただし、コードの後半で配列に null を代入する場合は、コンパイル エラーを避けるために null 許容アノテーションを保持しておくとよいでしょう。
結論
新しく作成された配列に null 許容のアノテーションを持つのは冗長に見えるかもしれませんが、これは VS が null 許容コンテキストで var の null 許容型を推論した結果です。 new を使用して配列を作成する場合、この注釈はオプションであることに注意してください。ただし、後で配列に null を割り当てる場合は、型の安全性を確保するためにアノテーションを保持すると有益な場合があります。
以上がVisual Studio が C# で新しく作成された配列に Null 許容注釈を追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。