JetBrains Rider 2026.1 Help

コードインスペクション:'base.Equals(...)' への呼び出しは参照の等価性

base.Equals(...) は、基底クラスがオーバーライドしない限り、 object.Equals を呼び出します。 つまり、参照の等価性のみをチェックするため、オーバーライドされた Equals メソッド内では望ましくない動作となる場合が多いのです。

このインスペクションは、呼び出しが object.Equals(...) に解決される場合に、その呼び出しを base.Equals(...) に報告します。 この場合、コードはオブジェクトの状態を比較せず、通常はオーバーライドが正しく動作しなくなります。

サンプル

class Person { public string Name { get; } public override bool Equals(object? obj) { return base.Equals(obj); } }
class Person { public string Name { get; } public override bool Equals(object? obj) { return obj is Person other && Name == other.Name; } }
2026 年 6 月 12 日