繁体   English   中英

如何创建一个泛型类,将泛型类作为泛型类?

[英]How do I create a generic class that takes as its generic type a generic class?

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

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

我想象的语法看起来像这样......

public DelayedAddConnection<T>: where T:ICollection<U> {
   ....

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

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

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

public class DelayedAddConnection<T, U> where T : ICollection<U>
{

}

所以,为了将来参考,我实施的这个想法的最终,最干净的版本归功于所有的建议和意见是这样的:

public class DelayedUpdateCollection<U>: ICollection<U> 
{

    ICollection<U> collection;


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

    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM