编译器警告(等级 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; }
}