C# 7 での「x is null」と「x == null」の区別
C# 7 では「x is null」演算子が導入されています「x == null」の代替として。新しい演算子は単なる構文のバリエーションのように見えるかもしれませんが、この 2 つの間には、いつどのように使用するかに影響を与える微妙な違いがあります。
セマンティクスは異なりますか?
いいえ。 「x は null」と「x == null」のセマンティクスは、null 比較では同一です。ただし、「x は null」演算子は、定数と比較するときに型を考慮します。これにより、等価演算子をオーバーロードするカスタム型と比較すると、「x == null」とは異なる動作が発生する可能性があります。
パフォーマンスへの影響
以前の Roslyn コンパイラ バージョンでは, 「x == null」は「x is null」よりも高速でした。ただし、最新の Roslyn コンパイラの最適化により、オーバーロードされた等価演算子がない場合は 2 つの演算子が同等に効率的になりました。
使用する演算子の決定
「 x は null」および「x == null」は、特定のシナリオによって異なります:
以上がC# 7 の「x is null」と「x == null」: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。