6

クラス内のEquals()のオーバーライドでコードを変更すると、コードに与える影響を確認したいと思います。

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

Shift-F12を実行してすべての参照を検索すると、Visual Studioはobject.Equals()を呼び出している場所を126,703個返します。

参照を探すときにEquals()メソッドのオーバーライドをスキップする方法はありますか?

4

1 に答える 1

5

Equalsメソッドはレベルで定義されているため、objectクラスのオブジェクトは、Equalsそれがobject.

たとえば、オブジェクトを HashSet に追加する場合、または.Distinct()オブジェクトを含むコレクションを呼び出す場合は、間接的に を呼び出すことになりますEquals

オーバーライドEqualsが影響するすべての場所を見つける唯一の方法は、クラスが使用されているすべての場所を見つけて、それで何が行われるかを確認することです。

于 2012-05-01T14:28:33.727 に答える