我已經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