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

Mad*_*nyo 1 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
Run Code Online (Sandbox Code Playgroud)

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

Evr*_*glu 6

Rect似乎是一个结构,而不是一个引用类型. 由于拳击,ReferenceEquals 将始终返回false结构.