我的代码如下
int a = 2;
int b = 2;
object _aobject = a;
object _bobject = b;
Debug.Assert(_aobject == _bobject , "");
为什么它返回 false ?
我的代码如下
int a = 2;
int b = 2;
object _aobject = a;
object _bobject = b;
Debug.Assert(_aobject == _bobject , "");
为什么它返回 false ?
这是因为这两个对象的引用不同。当您使用 比较 2 个类型的对象时Object
,==
您是在比较它们的引用。
您需要使用Equals ()
方法来检查对象是否具有相同的值。
请注意,对于类型的对象,string
您可以使用两种类型的比较来获得相同的结果。
此处_aobject == _bobject
检查参考,因此返回 false。
而_aobject.Equals(_bobject )
检查 value ,它将返回 true
使用Equals
而不是==
.
_aobject.Equals(_bobject)
只需尝试 _aobject.Equals(_bobject ) 检查值,它将返回 true