Как создать универсальный класс, который принимает в качестве универсального типа универсальный класс?

в принципе, я хочу написать оболочку для всех типов ICollection. Назовем это DelayedAddCollection. Оно должно принять любое ICollection как свое .

кроме того, мне нужен доступ к универсальному типу этого типа ICollection, поскольку метод Add должен ограничить свой параметр этим типом.

синтаксис, который я бы предположил, будет выглядеть примерно так...

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

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

каков реальный правильный синтаксис для этого?

2 ответов


нужно добавить еще один параметр универсального типа:

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;
    }

    ...