代码检查:调用 'base.Equals(...)' 是引用相等性判断
base.Equals(...) 调用 object.Equals ,除非基类进行了重写。 这意味着它只检查引用相等性,这通常不是在重写的 Equals 方法中所期望的行为。
此检查会报告当 base.Equals(...) 的调用被解析为 object.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年 5月 8日