1

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

用代码更好地解释..

我有这个通用类定义,我希望能够访问List's 类型参数,以便我可以定义一个GenericClassOfGenericType接受字符串的方法(取自列表的类型参数)

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

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

我尝试过类似的东西;

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

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

我可以GenericClassOfGenericType在构造函数中添加第二个类型定义和一个验证器,以确保泛型列表具有第二个类型作为类型参数,但它感觉一点也不好。

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

4

1 回答 1

2

那个怎么样:

public class GenericClassOfGenericType<TGeneric, TValue>
    where TGeneric : IList<TValue> 
于 2013-08-23T09:47:31.400 回答