3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#】初心者向け:Nullチェックの is演算子 vs 等価演算子

Posted at

記事の目的

nullチェックで

if(value is null)
if(value is not null)

を使うか

if(value == null)
if(value != null)

を使うかの判断ができるようになる

どっちがいいの?

先に結論から
nullチェックに関してはis演算子を使用します。

なぜis演算子の方が適しているのか

大きく分けて

  1. is演算子を使うメリット
  2. 等価演算子を使用するデメリット

があります。

1. is演算子を使うメリット

is演算子はユーザーがオーバーロードした等価演算子を呼び出すことが無い為、安全で高速なnull比較を行うことが可能です。

2. 等価演算子を使うデメリット

等価演算子はオーバーロード可能な演算子であるため、実装によってはnullチェックに対して必ずしも正確な値が返ってくるとは限りません。

また、等価演算子がオーバーロードされていた場合、nullチェックにおいては不必要な処理を通る可能性があり、処理速度が低下する恐れがあります。

結論

nullチェックにおいてはis演算子を使うようにしましょう。

参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?