找不到方法,我开始认为这是不可能的,但以防万一我会在这里问。通用类型的泛型类访问类型参数
更好地解释代码..
我有这个通用类的定义,我想能够访问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
中添加第二个类型定义,并在构造函数中添加一个验证器,以确保泛型列表具有第二个类型作为类型参数,但它根本感觉不太好。
[编辑] 也找不到一个约束,迫使你指定一个泛型类型作为参数(有意义的泛型也是强类型,但它使我认为这是不可能的)。
有什么特别的原因,你需要指定它的“清单”的一部分?为什么不只是'GenericClassOfGenericType'?让它处理它需要的任何“List ”的内部结构。我的意思是,你希望传入List的某个子类或者'ICollection'或'IList'的不同实现吗? –