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