Нужна помощь в обработке событий - PullRequest
1 голос
/ 05 июля 2010

У меня есть делегат

delegate string Mathop<T,F>(T a,F b); 

и я объявляю событие как

event Mathop<T,F> someevent;

Но здесь я получаю ошибку. Это говорит, что 'T' не может быть найден. Я хочу, чтобы мой Mathop делегат работал в качестве обработчика событий для моего события.

Что я здесь не так делаю.

1 Ответ

2 голосов
/ 05 июля 2010

Вам нужно заключить событие в класс, который принимает параметры типа, например,

class C<T, F>
{
    event Mathop<T, F> someevent;
}

Вы не можете подписаться на событие, для которого не определены конкретные типы - представьте, если можете - вы можете добавить любого делегата к этому событию, если он принимает два параметра и возвращает строку!

С помощью приведенного выше кода вы теперь сможете сделать что-то вроде

new C<Int32, Int32>().someevent += MyMethod

где MyMethod имеет подпись

String MyMethod(Int32 a, Int32 b);
...