以下代码不返回 true

本文关键字:返回 true 代码 | 更新日期: 2023-09-27 18:36:44

我的代码如下

   int a = 2;
   int b = 2;
   object _aobject = a;
   object _bobject = b;
   Debug.Assert(_aobject == _bobject , "");

为什么它返回假?

以下代码不返回 true

这里_aobject == _bobject检查引用,因此返回 false。

_aobject.Equals(_bobject )检查值,它将返回 true

这是因为这两个对象的引用不同。当您使用 == 比较 Object 类型的 2 个对象时,您正在比较它们的引用。

您需要使用Equals ()方法来检查对象是否具有相同的值。

请注意,对于类型为 string 的对象,您可以使用这两种类型的比较来获得相同的结果。

试试_aobject。等于(_bobject)检查值,它将返回真

使用 Equals 而不是 ==

_aobject.Equals(_bobject)