我想编写以下方法。
private void Foo<T, TItem>(T<TItem> param1)
在这里,T必须是一个泛型类型,它以TItem作为其泛型信息。
调用示例如下:
private void Main()
{
List<int> ints = new List<int>();
Foo<List, int>(ints);
}
编辑:
在我的情况下,我只需要处理集合。
实际用例是我想编写一个方法将某些内容添加到ICollection中,但遗憾的是ICollection
没有 .Add
方法,只有ICollection<T>
才有。
我不能更改该方法为:
private Foo<T>(ICollection<T>)
由于这样我会失去实际列表的类型信息,而这对我比列表内项目的类型更重要。
因此,上述想法应运而生,但却行不通。
List
始终需要一个泛型参数。 - MutantNinjaCodeMonkeyFoo
为什么需要以所描述的方式关联T
和TItem
;你能给一个更具体的例子吗? - CodorIList
有一个Add方法。那个能用来代替吗? - MutantNinjaCodeMonkey