Assert.AreEqual和Assert.AreSame之间的差异?

Pra*_*uka 66 c# assert

Assert.AreEqualAssert.AreSame有什么区别?

mag*_*gos 79

这意味着AreSame()检查它们是完全相同的对象 - 如果引用指示内存中的相同对象.

AreEqual()检查对象是否具有相同的类型和值.相等的对象可以存在于内存中的两个不同位置.


Sco*_*ain 58

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))想法"我想知道是否有更好的方法来做到这一点")