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

时间:2009-06-09 15:23:00

标签: c# generics

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

public void doIt( T extends MyEventArgs<? extends MyBaseClass> obj ) {
   ...
}

我如何在c#中做到这一点?我首先想到的就是它:

public void oIt( T obj ) where T : MyEventArgs<P> where P : MyBaseClass {
    ...
}

但显然我的语法错了。

任何想法?

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

1 个答案:

答案 0 :(得分:11)

只是缺少泛型类型参数:

public void oIt<T,P>( T obj )
     where T : MyEventArgs<P>
     where P : MyBaseClass
{
     ...
}

(名称oItTPobj可能更清晰,但我认为这是匿名的)