Iは、クラスAを持つクラスB、これはクラス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;
}
...
}
を簡略化されており、私は次のようにオブジェクト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()
は常にtrueだったが、新たにAとB、今a != b.getA()
に同期した後。私は要素をaとb.getA()の要素でデバッガを使って比較しましたが、それらは同じようです。
aとb.getA()の参照(アドレス)を比較する方法はありますか? C/C++では、ポインタ値を簡単に取得できましたが、C#でどのように行うことができるのか分かりません。
私はポイントがないか、[Object.ReferenceEquals](http://msdn.microsoft.com/en-us/library/system.object.referenceequals.aspx)を探していますか? –
同期するとどういう意味ですか? – colithium
AとBは値型ではなく参照型なので、 "ポインタ"を比較することは、あなたがすでに行っていることとまったく同じです。それが同じように戻ってくる理由です。 – dasblinkenlight