我正在尝试创建一个泛型类。该类将有一些通用事件。是否可以创建类似
的通用事件处理程序class MyClass<T>
{
public event EventArgs SomeEventClass();
}
EventClass的类名是由泛型同时使用基类创建的。
我正在尝试将事物传递回事件处理程序,并希望它们对调用者来说是类型安全的。
答案 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)
在任何上下文中都不能使用泛型指定名称。它们用于指定类型。
代码生成可能正是您所寻找的。 p>
答案 2 :(得分:0)
这样做你想要的吗?
class MyClass<T>
{
public event Func<T> GenericEvent;
}