Я хотел бы переопределить оператор .Equals
и ==
для класса. Мне нужно проверить, есть ли в настоящее время какие-либо сравнения сравнений в любом месте этого класса. Как мне это сделать?
С#: Как найти ссылки на оператор equals для определенного класса в Visual Studio
Ответ 1
В обоих случаях я бы добавил overload/override, а затем использовал "Find Usages" (в Resharper) или "Просмотр иерархии вызовов" (родной Visual Studio). Если что-нибудь появится, это будет изменение.
Другой подход (если ни один из них недоступен) заключается в (при выполнении этого) добавить [Obsolete]
к методам переопределения/перегрузки, которые вы добавляете, - тогда любой код, который начинает их использовать (т.е. имеет изменение поведения) будет отображаться как предупреждение.
Предостережение: если override
(Equals) является частью цепочки наследования, которая уже переопределяет Equals
, обратите внимание, что код, ссылающийся на базовый класс, не будет отображаться ни в одном из вышеперечисленных. Это включает код с использованием object
.
Ответ 2
Я думаю, вы можете сделать это, используя Resharper. У Resharper есть функция "find usages", которая достаточно мощная.
Вы можете переопределить метод Equals в классе, щелкнуть правой кнопкой мыши по нему и выбрать опцию поиска, если у вас установлен R #.
Затем вы получите список мест, где этот метод используется.