This question already has answers here:
Object.ReferenceEquals never hit
                                
                                    (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,第二次打印应返回trueRect来自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/

10-13 08:11
查看更多