C# における "null!" ステートメントの意味
「!」演算子を理解する
C# 8.0 では null 許容参照型が導入され、変数と参照型の null 許容値をきめ細かく制御できるようになりました。 「!」演算子 (「null 無視演算子」とも呼ばれる) を型に適用すると、その型の null 許容ステータスが null 許容から null 非許容に変更されます。
「null!」の使用法
「null!」ステートメントは、null リテラルに「!」演算子を適用し、null 値を非 null 値として扱う必要があることを示します。これにより、null リテラルのデフォルトの null 可能性がオーバーライドされ、コンパイラは値が null ではないと想定します。
一般的な使用法
次のコードを考えてみましょう:
<code class="language-csharp">public class Person { public string? MiddleName; // 可空 public string LastName = null!; // 不可空 }</code>
この例では、「MiddleName」プロパティは null 可能です。つまり、null 値を保持できます。ただし、「LastName」プロパティは、「null!」を使用して null 不可としてマークされます。これは、コンパイラが、たとえ最初に null の値が割り当てられていたとしても、"LastName" プロパティが null を保持しないことを強制することを意味します。
技術解説
C# 8.0 以降、すべての参照型はデフォルトで null 非許容になります。 「!」演算子を使用すると、この設定をオーバーライドして、null 許容型を null 非許容にすることができます。対照的に、「?」演算子は null 非許容型を null 可能にします。
慎重に使用してください
「null!」演算子は注意して使用する必要があります。これは、実行時に潜在的な null 参照例外をマスクする可能性があるコンパイラの null 安全性チェックをオーバーライドします。これは、null 許容値が null にならないことが確実な場合にのみ使用してください。
代替案
ほとんどの場合、「null!」演算子の使用を避けるために代替手段を使用することをお勧めします。たとえば、null 許容型と null 合体演算子を使用したり、null 値にアクセスする前に明示的に null 値をチェックしたりできます。
「null!」を使用する場合
「null!」演算子は特定の状況で役立ちます。
以上がC# の「null!」演算子は何をしますか?いつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。