This question already has answers here:
Object.ReferenceEquals never hit
(5个答案)
3年前关闭。
我有这段代码:
我希望能够确定引用是否是内存中的同一对象,因此对对象的引用相同。因此,第一次打印应返回
(5个答案)
3年前关闭。
我有这段代码:
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
会将两个变量都指向相同的引用。 最佳答案
Rect
似乎是一个结构,而不是引用类型。ReferenceEquals
will always return false
for structs,因为有拳击。
关于c# - 如果object2 = object1,则equals返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35414520/