带有事件的泛型自动生成

时间:2011-10-04 20:04:59

标签: c# events generics

我正在尝试创建一个泛型类。该类将有一些通用事件。是否可以创建类似

的通用事件处理程序
class MyClass<T> 
{
    public event EventArgs SomeEventClass();
}

EventClass的类名是由泛型同时使用基类创建的。

我正在尝试将事物传递回事件处理程序,并希望它们对调用者来说是类型安全的。

3 个答案:

答案 0 :(得分:1)

你想要这样的东西......

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方法

答案 1 :(得分:0)

在任何上下文中都不能使用泛型指定名称。它们用于指定类型

代码生成可能正是您所寻找的。

答案 2 :(得分:0)

这样做你想要的吗?

class MyClass<T> 
{
    public event Func<T> GenericEvent;
}