我想覆盖一个类的.Equals
和==
运算符。我需要检查当前是否在该类的任何地方使用了相等的比较。我该怎么做?
答案 0 :(得分:14)
在这两种情况下,我都会添加重载/覆盖,然后使用“查找用法”(在Resharper中)或“查看调用层次结构”(Visual Studio本机)。如果出现任何问题,那将是一个变化。
另一种方法(如果两者都不可用)是(在执行此操作时)将[Obsolete]
添加到您添加的覆盖/重载方法 - 然后任何开始使用它们的代码(即将对行为进行更改)将显示为警告。
警告:如果override
(等于)是已经覆盖Equals
的继承链的一部分,请注意引用基类的代码不会出现在任何基类中上面提到的。这包括使用object
的代码。
答案 1 :(得分:2)
我认为你可以通过使用Resharper来做到这一点。 Resharper具有“查找用法”功能,非常强大。
您可以覆盖类中的Equals方法,右键单击它,如果已安装R#,请选择“查找高级用法”。
然后,您将获得使用该方法的地方列表。