通用接口的通用列表,还有其他选择吗?我试图找到将通用接口通用列表用作变量的正确方法。这是一个例子。它可能不是最好的,但希望你能明白这一点:publicinterfaceIPrimitive{TValue{get;然后在另一个类中,我希望能够声明一个变量,该变量包含一个为任意T列表实现IPrimitive的对象。//我知道这一行不会编译,因为我没有定义TListprimitives=newList;primitives.Add(newStar());//假设Star实现了IPrimitiveprimitives.Add(newSun());//假设Sun实现了IPrimitive请注意,列表中的每个条目的IPrimitive可能不同。关于如何建立这种关系的任何想法?替代方法?publicinterfaceIPrimitive{}publicinterfaceIPrimitive:IPrimitive{TValue{get;}}publicclassStar:IPrimitive//mustdeclareThere{}那么你应该能够拥有Listprimitives=newList;primitives.Add(newStar());//假设Star实现了IPrimitiveprimitives.Add(newSun());//假设Sun实现了IPrimitiveJohn是对的。我是否还建议(如果您使用的是C#4)使接口协变?公共接口IPrimitive{T值{得到;当您需要从列表中删除某些内容时,这可以让您省去一些麻烦。你说不行是因为你没有定义T所以定义它:以上是C#学习教程:GenericListofGenericInterfacesisnotallowed,还有别的办法吗?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicclassHolder{publicList>Primitives{get;set;}}本文采集自互联网,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: