設A是與一些成員的x,y的一類,Z:等於方法的默認行爲是什麼?
Class A {
int x;
int y;
String z;
...
}
A是一個對象,以便它繼承在對象中定義的「等於」的功能。 這個函數的默認行爲是什麼?它是檢查成員的平等還是檢查參考平等?
設A是與一些成員的x,y的一類,Z:等於方法的默認行爲是什麼?
Class A {
int x;
int y;
String z;
...
}
A是一個對象,以便它繼承在對象中定義的「等於」的功能。 這個函數的默認行爲是什麼?它是檢查成員的平等還是檢查參考平等?
的Equals 的默認實現支持 引用類型參考平等,和值類型按位相 。引用相等 表示對比引用 的對象引用表示相同的對象。 按位相等意味着被比較的對象 具有相同的二進制 表示形式。
如果不覆蓋檢查參考值等於
事情實際上是值類型更加複雜:它不是跳投biwise相等比較。有關詳細信息,請參閱此問題http://stackoverflow.com/q/8315656/129073 – Gebb 2011-11-29 21:14:18
字符串是特殊的。 string.equals是按位相等的,而string是引用類型。 – 2014-12-30 01:14:56
@WillYu不是按位平等。它測試字符是否相同。按位相等意味着所有的.NET元數據(例如字符串是否被執行)都是相同的。它也不是特殊的(在這方面),它只是覆蓋Equals,並且重載(in)等於操作符。它的默認實現仍然是引用相等。 – Aidiakapi 2015-04-19 10:54:27