C# の null 無視演算子 (null!
)
この記事では、C# 8.0 以降で導入された null 無視演算子 (null!
) が null 許容型をどのように処理するかについて説明します。
簡単な説明:
null!
演算子は、null
リテラルの null 可能性をオーバーライドし、null
自体が null 許容である場合でも、リテラルを null 非許容値のように動作させます。
技術的な説明:
C# 8.0 では、参照型はデフォルトで null 非許容であり、null 許容型を明示的にマークするために ?
演算子が使用されます。 !
演算子は ?
演算子の逆です。
!
演算子を null 許容型に適用すると、null 非許容型に変わり、コンパイラーがこの変数に対して null チェックを実行すべきではないことを示します。同様に、null!
ステートメントは !
を null
リテラルに適用し、デフォルトの null 許容状態を効果的にオーバーライドします。
使用法:
通常、null!
ステートメントは、コードが null ではないことがわかっているが論理的に null 許容である変数を必要とする場合に使用されます。これにより、プログラマは、Null チェックが不要または望ましくない状況で、Null チェックを一時的に無効にすることができます。次の例を考えてみましょう:
<code class="language-csharp">public string LastName { get; } = null!;</code>
このシナリオでは、LastName
プロパティは null 非許容ですが、コードでは値が null にならないと想定されているため、null!
リテラル null
を使用して値を割り当てることができます。
注:
null!
演算子は特定の状況で役立ちますが、使用には注意が必要です。 null!
を過度に使用すると、null 許容参照型の安全性の利点が損なわれ、実行時例外により発見が困難なバグが発生する可能性があります。
要約すると、null!
ステートメントは、開発者が null
リテラルを含む変数の null 可能性をオーバーライドできるようにする C# 8.0 の強力なツールです。ただし、コードの信頼性を維持するために、注意して使用する必要があります。
以上がC# で「null!」演算子はどのように Null 可能性をオーバーライドしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。