帮我理解c#中的Equals()

时间:2011-08-16 22:07:05

标签: c#

  

可能重复:
  == or .Equals()

为什么要使用Equals()而不使用==

    for (i = 0; i < names.Length; i++)
{
   if (names[i].Equals(targetName))
   {
      index = i;
      break;
   }
}

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

==运算符通常会检查内存是否相等。

如果要检查的两个对象是对象(或指针),则会比较对象所在的地址

.Equals()函数由类实现,以检查两个对象之间的相等性。此函数(在类中实现)将检查对象中的数据值,而不是它们所在的内存地址。

某些对象会覆盖==运算符(see the answer here),因此检查相等性的两种方法对于某些对象(但不是所有对象)的作用可能相同。因此,使用.Equals()更安全。

相关问题