下打印等於:C#ValueType等於不比較屬性?
struct A
{
int x;
public A(int _x) { x = _x; }
public int Y
{
get
{
Random r = new Random();
return r.Next(0, 1000);
}
}
}
static void Main(string[] args)
{
A a1 = new A(1),a2 = new A(1);
if (a1.Equals(a2))
{
Console.Write("Equals");
}
else
{
Console.Write("Different");
}
}
反正是有得到C#在這種情況下,返回false?意思是,比較值類型時要考慮屬性?
你可以重載'Equals'方法並在那裏做任何你想做的事情。 – MarcinJuraszek
請注意,這樣的'Equals'實現會打破'Equals'合約的反射部分,因爲'x.Equals(x)'通常會返回'false'。爲什麼地球上你會想要這種奇怪的行爲? –