次のコードはなぜfalse
ですか?
Object.Equals(new Object(), new Object())
MSDNから
Equals の既定の実装では、参照型の参照の等価性と、値型のビットごとの等価性がサポートされています。参照の等価性とは、比較されるオブジェクト参照が同じオブジェクトを参照することを意味します。ビットごとの等価性は、比較されるオブジェクトが同じバイナリ表現を持つことを意味します。
つまり、同じタイプの 2 つの異なるオブジェクトを作成し、それらがまったく同じオブジェクトであるかどうかを確認しています。
MSDNドキュメントによると:
Equalsのデフォルトの実装は、参照型の参照等式、および値型のビット単位の等式をサポートします。参照の同等性とは、比較されるオブジェクト参照が同じオブジェクトを参照することを意味します。ビット単位の等式とは、比較されるオブジェクトが同じバイナリ表現を持つことを意味します。
派生型は、値の同等性を実装するためにEqualsメソッドをオーバーライドする場合があることに注意してください。値の同等性とは、比較されるオブジェクトの値が同じであるが、バイナリ表現が異なることを意味します。
2つの異なるオブジェクトを作成しています。