我已经B类,其具有A级,这是简化的类A和版本B.比较在C#就像基准值C/C++
class A
{
int x;
int y;
public A(int x, int y)
{
this.x = x;
this.y = y;
}
public A()
{
x = 0;
y = 0;
}
...
}
class B
{
A a;
public B(A a)
{
this.a = a;
}
public B()
{
this.a = null;
}
public A getA()
{
return a;
}
...
}
我需要比较对象如下。
public class MyClass
{
public static void RunSnippet()
{
var a = new A(10, 20);
var b = new B(a);
Console.WriteLine(a == b.getA());
}
}
的a == b.getA()
总是正确的,但同步到新的A和B,现在a != b.getA()
后。我使用调试器比较了元素a和b.getA()的元素,但它们看起来是一样的。
有什么办法比较a和b.getA()的引用(地址)吗?使用C/C++,我可以很容易地获得指针值,但我不知道如何使用C#来完成此操作。
我是否错过了观点,或者您在寻找[Object.ReferenceEquals](http://msdn.microsoft.com/zh-cn/library/system.object.referenceequals.aspx)? – 2012-02-09 03:26:32
同步是什么意思? – colithium 2012-02-09 03:27:13
因为A和B是引用类型,而不是值类型,所以比较“他们的指针”正是你现在正在做的事情;这就是它回归平等的原因。 – dasblinkenlight 2012-02-09 03:27:57