Generics with Event автоматически генерируется - PullRequest
1 голос
/ 05 октября 2011

Я пытаюсь создать универсальный класс. Класс будет иметь несколько общих событий. Можно ли создать универсальные обработчики событий что-то вроде

class MyClass<T> 
{
    public event EventArgs SomeEventClass();
}

Где имя класса для EventClass создается дженериками одновременно с использованием базового класса.

Я пытаюсь передать данные обратно в обработчик событий и хотел бы, чтобы они были безопасны для вызывающего типа.

Ответы [ 3 ]

1 голос
/ 05 октября 2011

Вы хотите что-то подобное ...

class MyClass<T> 
{
   public event EventHandler<EventArgs<T>> SomeEvent;

   protected void RaiseEvent(T data)
   {
      var tmp = SomeEvent;
      if(tmp != null)
         tmp(this, new EventArgs<T>(data));
    }
}

Вам нужно будет создать общий EventArgs, но это должно быть легко.Вы можете получить базовый класс и вызвать метод RaiseEvent, используя специальный универсальный аргумент

0 голосов
/ 05 октября 2011

Делает ли это то, что вы хотите?

class MyClass<T> 
{
    public event Func<T> GenericEvent;
}
0 голосов
/ 05 октября 2011

Имена не могут быть указаны с обобщениями в любом контексте. Они используются для указания типов .

Генерация кода может быть то, что вы ищете.

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