我有一个名为MyCustomClass的类:
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)
测试失败了,为什么?每个属性、静态成员等都是一样的。
AreEqual
的字符串重载实际上比较的是值而不是“对象相同”。 - Alexei LevenkovAreEqual
方法只是调用对象的Equals
方法。string
类的Equals
方法比较值,而List
类的实现则比较引用。每个类都可以自己决定如何实现,不像有特别支持字符串或其他类似的东西。 - Servy