Подтвердить что ты не робот

Разница между Assert.AreEqual и Assert.AreSame?

В чем разница между Assert.AreEqual и Assert.AreSame?

4b9b3361

Ответ 1

Это означает, что AreSame() проверяет, что они являются одним и тем же объектом - если ссылка указывает на тот же объект в памяти.

AreEqual() проверяет, что объекты имеют одинаковый тип и значение. Равные объекты могут существовать в двух разных местах в памяти.

Ответ 2

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)) и подумал: "Интересно, есть ли лучший способ сделать это" )