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

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

Jan 03, 2025 pm 09:19 PM

`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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか? Mar 03, 2025 pm 05:52 PM

C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

GULC:Cライブラリはゼロから構築されています GULC:Cライブラリはゼロから構築されています Mar 03, 2025 pm 05:46 PM

GULC:Cライブラリはゼロから構築されています

c言語関数形式文字ケース変換手順 c言語関数形式文字ケース変換手順 Mar 03, 2025 pm 05:53 PM

c言語関数形式文字ケース変換手順

C言語関数の定義と呼び出しルールは何ですか、そして C言語関数の定義と呼び出しルールは何ですか、そして Mar 03, 2025 pm 05:53 PM

C言語関数の定義と呼び出しルールは何ですか、そして

明確な使用法とフレーズ共有 明確な使用法とフレーズ共有 Mar 03, 2025 pm 05:51 PM

明確な使用法とフレーズ共有

メモリに保存されているC言語関数の返品値はどこにありますか? メモリに保存されているC言語関数の返品値はどこにありますか? Mar 03, 2025 pm 05:51 PM

メモリに保存されているC言語関数の返品値はどこにありますか?

C標準テンプレートライブラリ(STL)はどのように機能しますか? C標準テンプレートライブラリ(STL)はどのように機能しますか? Mar 12, 2025 pm 04:50 PM

C標準テンプレートライブラリ(STL)はどのように機能しますか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか? Mar 12, 2025 pm 04:52 PM

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?

See all articles