首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建以泛型类作为泛型类型的泛型类?

如何创建以泛型类作为泛型类型的泛型类?
EN

Stack Overflow用户
提问于 2013-09-09 19:09:23
回答 2查看 175关注 0票数 9

基本上,我想为所有ICollection<>类型编写一个包装器。让我们称它为DelayedAddCollection。它应该以任何ICollection作为它的。

此外,我需要访问该ICollection类型的泛型类型,因为Add方法需要将其参数限制为该类型。

我想象的语法会是这样的..。

代码语言:javascript
复制
public DelayedAddConnection<T>: where T:ICollection<U> {
   ....

   public void Add(U element){
     ...
   }
}

做这个的真正正确的语法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-09 19:11:42

您需要添加另一个泛型类型参数:

代码语言:javascript
复制
public class DelayedAddConnection<T, U> where T : ICollection<U>
{

}
票数 17
EN

Stack Overflow用户

发布于 2013-09-09 20:47:14

因此,为了将来的参考,感谢所有的建议和评论,我实现了这个想法的最后、最干净的版本如下:

代码语言:javascript
复制
public class DelayedUpdateCollection<U>: ICollection<U> 
{

    ICollection<U> collection;


    public DelayedUpdateCollection(ICollection<U> coll){
        collection = coll;
    }

    ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18705219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档