談談C#的相等性(3)
virtual bool Equals(Object object)
Equals 這個方法很有趣,和 operator == 不一樣。Equals是個在物件之母上的virtual method。意味著所有物件都可以override掉,提供型別客製的相等性比較。
上個段落有提到C#官方建議,如果 reference type 要比 value equality,則應該用 .Equals()。但有趣的是,Object 型別上的 Equals 方法,其比較的方法是「Reference相等」,和 Object.ReferenceEquals() 行為相同。但Value-Type物件,已經將.Equals方法覆寫成byte-by-byte內容相等。