如何指定泛型类型应该实现另一个泛型类型?

时间:2010-01-05 19:26:33

标签: c# .net generics where-clause

想象一下以下方法

public void SomeMethod<T>(T param)
    where T: List<T2>
{
}

不起作用:

  

错误16找不到类型或命名空间名称“T2”(您是否缺少using指令或程序集引用?)

我如何实现我明确打算做的事情?

2 个答案:

答案 0 :(得分:9)

为此,您需要指定其他通用参数

public void SomeMethod<T1,T2>(T1 param)
  where T1 : List<T2>
{
}

答案 1 :(得分:3)

作为已接受解决方案的一个侧面答案,由于T与T2明确相关,为什么要使用T?

public void SomeMethod<T2>(List<T2> listParam) 
{
}