带有事件自动生成的泛型
本文关键字:泛型 自动生成 事件 | 更新日期: 2023-09-27 18:10:30
我正在尝试创建一个通用类。这个类会有一些通用事件。是否可以创建像
这样的通用事件处理程序?class MyClass<T>
{
public event EventArgs SomeEventClass();
}
其中EventClass的类名是由泛型同时使用基类创建的。
我正在有效地尝试在事件处理程序中传递东西,并希望它们对调用者来说是类型安全的。
您想要这样的东西....
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
方法在任何上下文中都不能用泛型指定名称。它们用于指定类型。
代码生成可能是您正在寻找的。
这是你想要的吗?
class MyClass<T>
{
public event Func<T> GenericEvent;
}