Как я могу передать событие функции в C#?

Сделайте «double g = 1.0 / 3.0;» вместо этого.

20
задан strager 8 March 2009 в 16:24
поделиться

2 ответа

Причина, почему это не работает, + = при применении к делегату создает нового делегата, который является комбинацией старого и нового. Это не изменяет существующего делегата.

, Чтобы заставить это работать, необходимо будет передать делегата ссылкой.

public static void Helper(ref EventHandler<EventArgs> e)
{
    e+= (x,y) => {};
}

причина, это работает за пределами метода, состоит в том, потому что LHS является все еще фактическим полем. Так + = создаст нового делегата и присвоит назад членскому полю.

17
ответ дан 30 November 2019 в 00:48
поделиться

Просто предположение: Вы попытались передать его как касательно?

public static void MyHelperFunction<TEventArgs>(ref EventHandler<TEventArgs> eventToAttachTo)

MyHelperFunction(ref MyEvent);
2
ответ дан 30 November 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: