访问泛型类的泛型类的类型参数

时间:2013-08-23 09:41:03

标签: c# .net generics

无法找到方法,我开始认为这是不可能的,但万一我会问这里。

使用代码更好地解释..

我有这个泛型类定义,我希望能够访问List的类型参数,这样我就可以在GenericClassOfGenericType中定义一个接受字符串的方法(取自列表的类型参数)

//class definition
public class GenericClassOfGenericType<TGeneric>{ }

var instance = new GenericClassOfGenericType<List<string>>();

我尝试了类似的东西;

public class GenericClassOfGenericType<TGeneric<TValue>> { 
 public void ProxyAdd(TValue value){ }
} 

但这不起作用,在谷歌上找不到类似的东西。

我可以向GenericClassOfGenericType添加第二个类型定义,并在构造函数中添加一个验证器,以确保泛型列表将第二个类型作为类型参数,但它根本不会感觉良好。

[编辑] 也找不到强制你将泛型类型作为参数赋值的约束(这是有道理的,因为泛型也是强类型的,但它让我认为这是不可能的)。

1 个答案:

答案 0 :(得分:2)

怎么样:

public class GenericClassOfGenericType<TGeneric, TValue>
    where TGeneric : IList<TValue>