我有一個類MyCustomClass:當我比較兩個空列表時,爲什麼測試'Assert.AreEqual'失敗?
public MyCustomClass
{
public MyCustomClass()
{
MyObject = new List<MyCustomObject>();
}
public List<MyCustomObject> MyObject {get; set;}
}
在測試:
List<MyCustomObject> aux = new List<MyCustomObject>();
MyCustomClass oClass = new MyCustomClass();
Assert.AreEqual(aux, oClass.MyObject)
試驗已經失敗了,爲什麼?每個屬性,靜態成員等都是一樣的。
+1您是否在提問之前開始回答:)?注意:'AreEqual'覆蓋字符串實際比較值而不是「對象是相同的」。 –
@AlexeiLevenkov'AreEqual'只是調用對象的'Equals'方法。 Equals的字符串實現比較值,List實現比較引用。每個班級都可以做任何想做的事情;這不像是對絃樂或類似的東西有特殊的支持。 – Servy
@Servy,好點。我會避免使用「相同」的語句關於比較對象在C#/。淨 - 而是明確地說「相同的參考」/「相同通過運營商=」/「相同通過等於」...(順便說一句,我喜歡你刪除你的回答) –