6

我想确定在我的类中重写 Equals() 的代码更改对代码的影响。

  public override bool Equals(object obj)
  {
     // My code to be changed
     return true;
  }

当我按 Shift-F12 查找所有引用时,Visual Studio 返回 126,703 个我调用 object.Equals() 的位置。

有没有办法在查找引用时跳过 Equals() 方法的覆盖?

4

1 回答 1

5

因为该Equals方法是在一个object级别上定义的,所以您的类的一个对象可以很容易地传递给一个调用方法,该方法只Equals知道它是一个object.

例如,如果您曾经将对象添加到 HashSet,或者如果您调用.Distinct()包含您的对象的集合,那么您将间接调用Equals.

找到覆盖将影响的所有地方的唯一方法Equals是找到你的类正在使用的所有地方,看看用它做了什么。

于 2012-05-01T14:28:33.727 回答