次のようなコードがあるとします。
var someCollection = new int[] {};
var result = someCollection.SingleOrDefault();
次にresult
、デフォルト値であるかどうかを判断したいと思います。ただし、要素の型が変更された場合に残りのコードを変更する必要がないように、保守可能な方法でこれを行いたいと考えています。someCollection
これが一般的に行われているように見える方法は(一般的な意味で)result == null
. この場合、もちろん、型は参照型ではないため、これは機能しません。
この仮定を回避する改良がresult == default(int)
. ただし、要素の型を変更するには引数も に変更する必要がdefault
あるため、型を 1 か所だけ変更するという要件はまだ満たされていません。
合否基準
- 組み込みロジックは、カスタム ロジックよりも優先されます。
- エレガントで簡潔なコードが好まれます。
- 効率的なコードが優先されます。(参照型の場合、参照比較のみが発生する必要があります。)