Как я могу найти метод, который для события - PullRequest
0 голосов
/ 19 марта 2012

В источнике C # есть что-то вроде этого:

public event UnloadHandler Unload;
public delegate void UnloadHandler();

тогда в программе есть вызовы Unload (), когда я нажимаю F12, чтобы увидеть реализацию, она снова переходит к объявлению этого события. Так как же найти настоящее тело этого метода Unload ()?

Ответы [ 3 ]

4 голосов
/ 19 марта 2012

Unload - это не метод, это событие - у него нет «реального тела».

Когда событие вызывается,любые обработчики, прикрепленные к нему, будут выполняться по очереди.Вы можете получить список подключенных обработчиков из кода внутри класса через Delegate.GetInvocationList, но вы не можете волшебным образом перейти к реализующему коду.

То, что вы можете сделатьнайти места, где обработчики событий присоединены с синтаксисом Unload += /* something */, выполнив поиск по источнику;это точно скажет вам, что запланировано запустить при возникновении события.

1 голос
/ 19 марта 2012

Самый простой способ - нажать F12 в объявлении UnloadHandler.Также было бы неплохо, если у вас есть Visual Studio, просто попробуйте что-то вроде Unload + = (TAB) - и Visual Studio автоматически создаст для вас заглушки методов.

Приветствия, Иван

1 голос
/ 19 марта 2012

Щелкните правой кнопкой мыши и выберите «Найти использование». Где-то что-то должно назначать метод событию Unload (их может быть больше одного). Это будет выглядеть примерно так:

this.Unload += new UnloadHandler(form_Unload);

или

this.Unload += form_Unload;

Затем вы можете нажать f12 в добавленном обработчике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...