我想做的是有一个方法,该方法将泛型类型作为带有约束的参数。但是,约束的类型也具有第二种泛型类型,但是我希望该方法能够起作用,而不管第二种类型是什么:

public class IEvent<T> where T : EventArgs { }
public class EventManager
{
    public void DoMethod<T>() where T: IEvent<???>
    {
    }
}

具体来说,我正在尝试让EventManager类接收任何类型的事件,然后对其进行处理。我是不是使事情复杂化了,或者这可行吗?

最佳答案

您必须使用第二个约束:

void DoMethod<TEvent, TArgs>() where TEvent : IEvent<TArgs> where TArgs : EventArgs {}

09-06 16:36