可能重复:
== or .Equals()
为什么要使用Equals()
而不使用==
for (i = 0; i < names.Length; i++)
{
if (names[i].Equals(targetName))
{
index = i;
break;
}
}
答案 0 :(得分:2)
答案 1 :(得分:1)
==
运算符通常会检查内存是否相等。
如果要检查的两个对象是对象(或指针),则会比较对象所在的地址。
.Equals()
函数由类实现,以检查两个对象之间的相等性。此函数(在类中实现)将检查对象中的数据值,而不是它们所在的内存地址。
某些对象会覆盖==
运算符(see the answer here),因此检查相等性的两种方法对于某些对象(但不是所有对象)的作用可能相同。因此,使用.Equals()
更安全。