コンパイラの警告 (レベル 3) CS0660
'class' は 演算子 == または演算子 != を定義しますが、Object.Equals(object o) をオーバーライドしません
コンパイラによってユーザー定義の等値演算子または非等値演算子が検出されましたが、Object.Equals メソッドのオーバーライドが検出されませんでした。 ユーザー定義の等値演算子または非等値演算子は、Equals メソッドもオーバーライドすることを意味します。 詳細については、「型の値の等価性を定義する方法」を参照してください。
次の例では CS0660 が生成されます。
// CS0660.cs
// compile with: /W:3 /warnaserror
class Test // CS0660
{
public static bool operator == (object o, Test t)
{
return true;
}
// uncomment the Equals function to resolve
// public override bool Equals(object o)
// {
// return true;
// }
public override int GetHashCode()
{
return 0;
}
public static void Main()
{
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。