ヨーダ記法
下記はJavaにおいて、プリミティブラッパークラスjava.lang.Booleanからプリミティブ型booleanへの暗黙的なボックス化解除(オートアンボクシング)が実行されることで異常動作を引き起こす例である。
ヨーダ記法では:
Java 8以降はjava.util.Objects.isNull(Object)を使う方法もある。
C#の場合はboolのような組み込みの値型もすべてSystem.ValueTypeから派生するオブジェクトであり、プリミティブラッパークラスのようなものは不要である。また、暗黙的なボックス化解除もされず、値を取り出すにはキャスト演算子を使って明示的に変換する必要があるため、上記のような問題は起きない。ただし、boolへの暗黙変換演算子をユーザー定義していたり、true/false演算子をユーザー定義していたりすると、上記のJavaにおける例のような間違ったコードを書くことができてしまう。とはいえ、2つの参照の等値性比較にはObject.ReferenceEquals(Object, Object)を使うことができるし、C# 7.0以降はis演算子を使ってif (obj is null) {...}と書くこともできるので、問題を避けるためにヨーダ記法を使う必要はない。