我有这段代码:
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
,第二个打印应返回true
。 Rect
来自Unity引擎,但我可以将它包装在我自己的类中,如果需要这样做,则覆盖equals。但我希望第6行打印true
,因为a = b
会将两个变量都指向同一个引用。
答案 0 :(得分:6)
Rect
似乎是一个结构,而不是一个引用类型。
ReferenceEquals
will always return false
for structs,因为拳击。