【发布时间】:2011-03-03 17:00:20
【问题描述】:
使用 Object.Equals 会导致两个使用相同构造函数的新创建对象的错误。为什么是这样?我希望能够比较两个对象并查看它们是否相同,换句话说,我想做与上面相同的测试,但我希望能够在第一次测试中得到一个真(因为这两个对象应该是相同的)。
如何在不为任何特定类构建自己的比较方法的情况下完成此操作。
using System;
class Program
{
static void Main(string[] args)
{
Object Obj1 = new Object();
Object Obj2 = new Object();
Console.WriteLine(Obj1.Equals(Obj2));
Obj2 = Obj1;
Console.WriteLine(Obj1.Equals(Obj2));
}
}
/* This example produces the following output:
False
True
*/
附录:
Object o1 = new Object();
Object o2 = new Object();
o1.value1 = 1;
o2.value1 = 1;
//Now I want to compare o1 and o2 and see if they are equal
//Can I do this without building my own function?
【问题讨论】:
-
我建议你看看documentation for Object.Equals 来了解这个方法的默认行为。
-
我现在明白了 Object.Equals 的作用,您能帮我找出原始帖子附录中的问题吗?谢谢!
-
您的附录无法编译。你在谈论
System.Object类型,对吧?此类型没有任何value1字段或属性。