ホームページ > バックエンド開発 > C++ > C# 8.0 における「!」 (Null 許容) 演算子は何を意味しますか?

C# 8.0 における「!」 (Null 許容) 演算子は何を意味しますか?

Patricia Arquette
リリース: 2025-01-09 10:16:45
オリジナル
1027 人が閲覧しました

What Does the `!` (Null-Forgiving) Operator Mean in C# 8.0?

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 値を保持できます。
  • 2 行目: MiddleName 属性は null 非許容で、! で表されます。これは、NULL 値を保持できないことを意味します。ただし、null! 式はこの非 null 可能性を明示的にオーバーライドし、null を非 null 値として扱います。

技術解説

C# 8.0 では、すべての参照型がデフォルトで Null 非許容となる「null セーフティ」が導入されました。 null 許容型を表すには、? 演算子を使用する必要があります。逆に、! 演算子を null 許容型に適用して、null 非許容性を示すことができます。

メモ

  • 過剰使用を避ける: null 許容演算子は、null 安全性の目的を損なうため、注意して使用する必要があります。
  • 実行時例外: ! 演算子はコンパイラレベルのチェックのみを無効にします。値が null の場合でも、実行時例外が発生する可能性があります。
  • 有効な使用例: 制限にもかかわらず、null 許容演算子は、コンパイラーが値の null 可能性を推論できない場合、レガシー コードを移行する場合、または null を処理する際のコードの動作をテストする場合に使用されます。役立つかもしれません。

以上がC# 8.0 における「!」 (Null 許容) 演算子は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート