无法找到方法,我开始认为这是不可能的,但万一我会问这里。
使用代码更好地解释..
我有这个泛型类定义,我希望能够访问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
添加第二个类型定义,并在构造函数中添加一个验证器,以确保泛型列表将第二个类型作为类型参数,但它根本不会感觉良好。
[编辑] 也找不到强制你将泛型类型作为参数赋值的约束(这是有道理的,因为泛型也是强类型的,但它让我认为这是不可能的)。
答案 0 :(得分:2)
怎么样:
public class GenericClassOfGenericType<TGeneric, TValue>
where TGeneric : IList<TValue>