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

use*_*788 9 c# generics

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

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

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

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

   public void Add(U element){
     ...
   }
}
Run Code Online (Sandbox Code Playgroud)

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

Lee*_*Lee 17

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

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

}
Run Code Online (Sandbox Code Playgroud)

  • @ user430788 - 你有什么理由需要集合的类型,而不是只是`ICollection <T>`? (3认同)