Button.Click += new RoutedEventHandler(_click);
private void _click(object sender EventArgs e)
{
//...
}
В приведенном выше коде мы создаем экземпляр типа RoutedEventHandler, который является делегатом, с событием Button.Click. Но событие является абстрактным делегатом, не так ли? Я не понимаю разницы между этим и просто созданием RoutedEventHandler переменной, а затем добавлением переменных в список вызовов экземпляра. Я делаю это слишком сложно? Как работают все задействованные делегаты?События и делегаты
Редактировать: так что моя главная проблема заключается в том, чтобы просто устранить разрыв между тем, что я знаю о делегатах, и тем, что я знаю о событиях. Я знаю, что событие является делегатом, завернутым в другой слой абстракции. Поэтому, когда вы назначаете другой делегат в свой список вызовов, используя оператор + =, вы просто назначаете делегата другому делегату, исправьте? Но в коде, который я написал выше, вы фактически не создаете класс RoutedEventHandler, поэтому я смущен тем, как вы передаете его в список вызовов события Button.Click. Я также запутался, потому что кажется, что все на самом деле указывает на что-то еще с делегатами и событиями, и ссылки усложняются.
вы имели в виду что-то вроде: - RoutedEventHandler г = новый RoutedEventHandler (_click); Button.Click + = г ;? –
Да; но я не думаю, что я задам себе вопрос. Я знаю, как написать обработчик событий, я просто пытаюсь понять события и делегаты на более глубоком уровне. Есть пробел между тем, что я знаю о делегатах, а затем то, что я знаю о событиях. Я отредактирую свой вопрос, чтобы попытаться сформулировать его лучше. –