爲什麼使用Equals()
,而不是使用==
for (i = 0; i < names.Length; i++)
{
if (names[i].Equals(targetName))
{
index = i;
break;
}
}
爲什麼使用Equals()
,而不是使用==
for (i = 0; i < names.Length; i++)
{
if (names[i].Equals(targetName))
{
index = i;
break;
}
}
的==
運營商最常用的檢查爲了內存平等。
如果您要檢查的兩個對象是對象(或指針),那麼這將比較該對象所在的地址。
.Equals()
函數由類實現以檢查兩個對象之間的相等性。此功能(在類中實現)將檢查對象中的數據值,而不是其所在的內存地址。
某些對象會覆蓋==
運算符(see the answer here),因此兩種檢查相等性的方法可能都是相同的對於一些,但不是所有的對象。因此,使用.Equals()
更安全。
根據此: http://msdn.microsoft.com/en-us/library/362314fe .aspx 您的陳述不正確。 –
'=='可以被重載以使用其他比較而不是參考比較。字符串曾經是一個流行的例子。 – CodesInChaos
謝謝,我編輯了我的答案以反映這一點。 – mopsled
http://stackoverflow.com/questions/971954/difference-between-equals-and –