9

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

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

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

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

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

执行此操作的真正正确语法是什么?

4

2 回答 2

17

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

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

}
于 2013-09-09T19:11:42.573 回答
0

因此,由于所有的建议和评论,我实现了这个想法的最终、最干净的版本,以供将来参考:

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

    ICollection<U> collection;


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

    ...
于 2013-09-09T20:47:14.353 回答