英語で読む

次の方法で共有


コンパイラの警告 (レベル 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; }  
}  

関連項目