web-dev-qa-db-ja.com

Assert.AreEqualとAssert.AreSameの違いは?

Assert.AreEqualAssert.AreSameの違いは何ですか?

62
Pramuka

つまり、参照がメモリ内の同じオブジェクトを示している場合、AreSame()はそれらが正確に同じオブジェクトであることをチェックします。

AreEqual()は、オブジェクトのタイプと値が等しいことを確認します。等しいオブジェクトは、メモリ内の2つの異なる場所に存在できます。

76
magos

Assert.AreEqual(a, b)Assert.IsTrue(Object.Equals(a, b))と同じです

Assert.AreSame(a, b)Assert.IsTrue(Object.ReferenceEquals(a, b))と同じです

(私が知っていた唯一の理由は、Assert.IsTrue(Object.ReferenceEquals(a,b))を実行する必要があったため、今日数時間前に自分でそれを見つけただけだということです「これを行うより良い方法があるのだろうか」 )

54