ホームページ > バックエンド開発 > C++ > C# の「x is null」と「x == null」: いつどちらを使用する必要がありますか?

C# の「x is null」と「x == null」: いつどちらを使用する必要がありますか?

Patricia Arquette
リリース: 2025-01-03 21:19:08
オリジナル
802 人が閲覧しました

`x is null` vs. `x == null` in C#: When Should You Use Which?

x is null vs x == null

C# では、== と is を使用してオブジェクトを null と比較することは伝統的に同様でした。ただし、C# 7 では新しい演算子 is null が導入されており、従来の == null よりもこれを使用する利点はありますか?

セマンティクス

という疑問が生じます。一般に信じられていることに反して、x == null と x is null のセマンティクスは同一ではありません。どちらもオブジェクトを null と比較しますが、null 以外の定数と比較する場合の動作は異なります。

is null の利点

is null の利点の 1 つは、その機能です。比較中にオブジェクトのタイプを考慮します。例:

Test(1);

void Test(object o)
{
    if (o is 1)
        Console.WriteLine("a");
    else
        Console.WriteLine("b");
}
ログイン後にコピー

この例では、is 演算子により、それぞれの型を考慮して o と定数 1 を比較できます。

使用する場合は null

通常、null 以外の定数を扱うとき、特に考慮する場合、x は null です。 種類。 null のみを含む比較の場合、== null と is null は両方とも同じ目的を果たします。

いつ使用するか == null

== null は、引き続き信頼できる選択肢です。 null を含む比較。オブジェクトの種類を考慮する必要がない場合は、== null が一般的に使用されます。

Update

Roslyn コンパイラは、== と の動作を調整するように変更されました。オーバーロードされた等価演算子がないシナリオでは null になります。その結果、どちらもより効率的な == 動作に最適化されるようになりました。ただし、オーバーロードされた等価演算子が存在する場合、is null と == null の動作は異なります。

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

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