c#中的泛型:"两个间接层次"

jrh*_*ath 0 c# generics

我将在java中实现这样的一段代码:

public void doIt( T extends MyEventArgs<? extends MyBaseClass> obj ) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

我怎么会在c#中这样做?我首先想到的就是这样:

public void oIt( T obj ) where T : MyEventArgs<P> where P : MyBaseClass {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但显然我的语法错了.

有任何想法吗?

PS:不要问我为什么要这样做.请 :)

Mar*_*ell 11

只是缺少泛型类型参数:

public void oIt<T,P>( T obj )
     where T : MyEventArgs<P>
     where P : MyBaseClass
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

(姓名oIt,T,P并且obj很可能是更清晰,但我会认为是匿名化)