在this question。我們發現,在.NET 1.1,Array.IndexOf(array, value)
搜索元素與其中.Equals()方法使用
value.Equals(arrayElement) == true
而.NET 2.0改成了搜索元素與
arrayElement.Equals(value) == true
顯然,兩個結果之間的電位差產生於多態性,但是有什麼理由爲什麼後者版本更可取?更一般地說,如果我有兩個對象a
和b
進行比較,是否有任何理由更喜歡a.Equals(b)
或b.Equals(a)
?
==真是我的禍根。 – recursive 2009-08-28 14:20:04
雖然我同意你@recursive,但在這種情況下,它強調了代碼片斷的重點。 – 2009-08-28 14:23:33
我不會寫'if(value.Equals(arrayElement)== true)',但正如Austin所說,在這種情況下,重點似乎很有用。 – stevemegson 2009-08-28 14:26:30