編譯器警告 (層級 3) CS0659
'class' 覆寫了 Object.Equals(object o),但並沒有覆寫 Object.GetHashCode()
編譯器偵測到 Object.Equals 方法的覆寫,但並未偵測到 Object.GetHashCode 方法的覆寫。 Equals 的覆寫表示您也需要覆寫 GetHashCode。
下列程式碼會產生 CS0659:
C#
// CS0659.cs
// compile with: /W:3 /target:library
class Test
{
public override bool Equals(object o) { return true; } // CS0659
}
// OK
class Test2
{
public override bool Equals(object o) { return true; }
public override int GetHashCode() { return 0; }
}