编译器警告(等级 3)CS0659

“class”重写 Object.Equals(object o) 但不重写 Object.GetHashCode()

编译器检测到 Object.Equals 方法的替代,但未检测到 Object.GetHashCode 方法的替代。 替代 Equals 表示你还需要替代 GetHashCode

下面的代码生成 CS0659:

// 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; }  
}  

请参阅