null!
演算子
C# 8.0 とその null 許容参照型機能では、!
演算子には「null 許容演算子」と呼ばれる新しい目的があります。この演算子を型に適用すると、値の null 可能性がオーバーライドされ、値が null 非許容になります。つまり、デフォルトでは null が許容されますが、null は「非 null」型として扱われます。
実践例
LastName
プロパティが null 許容で、MiddleName
プロパティが null 非許容であるクラスを考えてみましょう:
<code class="language-csharp">public class Person { public string? LastName { get; set; } public string MiddleName { get; set; } = null!; }</code>
1行目と2行目の違い
LastName
プロパティは null 可能であり、?
演算子で表される null 値を保持できます。 MiddleName
属性は null 非許容で、!
で表されます。これは、NULL 値を保持できないことを意味します。ただし、null!
式はこの非 null 可能性を明示的にオーバーライドし、null を非 null 値として扱います。 技術解説
C# 8.0 では、すべての参照型がデフォルトで Null 非許容となる「null セーフティ」が導入されました。 null 許容型を表すには、?
演算子を使用する必要があります。逆に、!
演算子を null 許容型に適用して、null 非許容性を示すことができます。
メモ
!
演算子はコンパイラレベルのチェックのみを無効にします。値が null の場合でも、実行時例外が発生する可能性があります。 以上がC# 8.0 における「!」 (Null 許容) 演算子は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。