创建Item <U>的IList <T>?

Dav*_*ams 2 .net c# generics c#-3.0

我说有一个对象Item<U>.我想创建一个(I)List<T>包含这些项集合的(n).我Item<U>遇到的问题是,其中的U可以包含任意数量的不同类型的集合.

我无法弄清楚的是用于签名的签名IList.我试过了IList<Item<T>>,但是因为我没有(在IList要使用的类中)有一个定义T(正如我所说的varys无论如何)我不能使用这个签名.达到此要求的最佳方法是什么?

ang*_*son 5

您需要为您添加非通用接口,Item<U>并从这些接口中创建集合.

没有办法可以创建一个集合,IList<Item<T>>其中T是一些基本类型,适用于要放入同一列表的许多不同对象类型.这是co(ntra) - 方差,特别禁止这种情况.

所以你需要添加一些常见的东西,而不是通用的东西,然后列出那个.例如,您可以创建Item<T>工具IItem,然后创建IList<IItem>.

这是你能做的最好的事情.