如何订阅泛型类的静态事件

时间:2019-08-15 08:12:29

标签: c# generics events

我有一个具有静态事件的通用类:

public class MyClass<T>
{
    static public event EventHandler MyEvent;
}

是否可以在没有指定类型T的情况下预订 事件?我尝试过这样,但是编译器不会编译它。

public class MyClass2
{
    public MyClass2()
    {
        MyClass</*this can't be empty, but I don't want to specifiy*/>.MyEvent += this.EventHandler;
    }   
}

1 个答案:

答案 0 :(得分:1)

通用类型为.borderCursor a { box-sizing: content-box; padding: 3px; } 的静态字段是 per <T> ;不必关心T是没有道理的,因为TMyClass<Foo>.MyEvent 完全不同-它可以有不同的订阅者,而调用一个订阅者不会调用另一个。如果要共享它们,则需要在非通用类(即

)中定义事件。
MyClass<Bar>.MyEvent

请注意,静态事件通常(但并非总是)是错误的设计选择。