私がレビューしていた次のコードを検討してください。
public override bool Equals(object other)
{
return !object.ReferenceEquals(null, this)
&& (object.ReferenceEquals(this, other)
|| ((other is MyType) && this.InternalEquals((MyType)other)));
}
このコードの最初の行が私の好奇心を刺激しました。が null の場合は常にthis
、メソッドは false を返す必要があります。!object.ReferenceEquals(other, null)
これで、プログラマーは, を使用して状況をショートカットするつもりだったと確信していますが、彼はそれが null になる可能性があるとnull
主張しています。this
私はそれができないと主張しています(誰かが直接メモリ操作を使用しない限り)。そのままにしておくべきですか?