如果object2 = object1,则引用equals返回false

时间:2016-02-15 16:38:18

标签: c# equality

我有这段代码:

Rect a = new Rect(0, 0, 4, 4);
Rect b = new Rect(0, 0, 4, 4);
print(Object.ReferenceEquals(a, b)); //prints false
print(Object.ReferenceEquals(a, a)); //prints false
b = a;
print(Object.ReferenceEquals(a, b)); //prints false

我希望能够确定引用是否是内存中的同一个对象,因此对该对象的引用相同。因此,第一个打印应返回false,第二个打印应返回trueRect来自Unity引擎,但我可以将它包装在我自己的类中,如果需要这样做,则覆盖equals。但我希望第6行打印true,因为a = b会将两个变量都指向同一个引用。

1 个答案:

答案 0 :(得分:6)

Rect似乎是一个结构,而不是一个引用类型。 ReferenceEquals will always return false for structs,因为拳击。