讓我們考慮Polygon
類。大多數情況下,檢查平等是否應該比較參考值,但是在許多情況下,值相等會派上用場(例如,將兩個多邊形與Assert.AreEqual
進行比較)。應該==運算符與Equals()完全相同嗎?
我的想法是使參考平等的價值平等略爲次要。在這種情況下,很明顯==operator
應該保持其默認引用檢查實現。
那麼object.Equals()
和IEquatable<Polygon>.Equals()
呢? MSDN並不意味着==
和.Equals()
應該這樣做,但仍然 - 它不會使Polygon
對象的行爲過於模糊嗎?
此外,Polygon
類是可變的。
他們是不一樣的.'長期短''.Equals用於對象相等''==用於檢查值的相等'做一個谷歌搜索更深入的澄清。爲什麼人們在這裏問問題,他們可以很容易地找到答案買一個簡單的谷歌搜索'我只是好奇' – MethodMan
我不會在這裏問這個問題的OP錯誤。我發現,與谷歌搜索相比,搜索引擎是獲得知情答案的更有聲譽的來源。而且,正如他所說,MSDN並不總是清楚這些事情。 –
@MikeHofer問題不在於*上的主題*。 – Servy