記事の目的
nullチェックで
if(value is null)
if(value is not null)
を使うか
if(value == null)
if(value != null)
を使うかの判断ができるようになる
どっちがいいの?
先に結論から
nullチェックに関してはis演算子を使用します。
なぜis演算子の方が適しているのか
大きく分けて
- is演算子を使うメリット
- 等価演算子を使用するデメリット
があります。
1. is演算子を使うメリット
is演算子はユーザーがオーバーロードした等価演算子を呼び出すことが無い為、安全で高速なnull比較を行うことが可能です。
2. 等価演算子を使うデメリット
等価演算子はオーバーロード可能な演算子であるため、実装によってはnullチェックに対して必ずしも正確な値が返ってくるとは限りません。
また、等価演算子がオーバーロードされていた場合、nullチェックにおいては不必要な処理を通る可能性があり、処理速度が低下する恐れがあります。
結論
nullチェックにおいてはis演算子を使うようにしましょう。
参考資料