ホームページ > バックエンド開発 > C++ > C# の「null!」演算子は何をしますか?いつ使用する必要がありますか?

C# の「null!」演算子は何をしますか?いつ使用する必要がありますか?

Mary-Kate Olsen
リリース: 2025-01-09 10:15:42
オリジナル
128 人が閲覧しました

What Does the C# `null!` Operator Do and When Should You Use It?

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!」演算子は特定の状況で役立ちます。

  • Null 許容値が実際には Null 非許容値であることをコンパイラが検出できない場合。
  • Null 許容型に依存する古いコードを移行する場合。
  • 場合によっては、null 可能性チェックを無視して null 値を明示的に処理したいことがあります。
  • コンパイル時エラーを発生させずに、テスト ケースで null シナリオをシミュレートします。

以上がC# の「null!」演算子は何をしますか?いつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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