一个List <T>中包含多个接口

jsm*_*ars 0 c# generics inheritance interface generic-list

有没有办法在像List这样的泛型类中定义类型,以包含只实现多个接口的对象?可能是类类型接口.

例如:

List<myObjectBase, IDisposable, IClonable> myList;
Run Code Online (Sandbox Code Playgroud)

Rom*_*kov 8

不确定我是否理解正确,但是这个怎么样:

class MyList<T> : List<T>
  where T : myObjectBase, IDisposable, IClonable
{
}
Run Code Online (Sandbox Code Playgroud)

这样,您只能将对象添加到从基础派生的列表中并实现这些接口.

  • 你会怎么用这个?例如,假设`Foo`和`Bar`各自继承基类和接口.`MyList <Foo>`不能保存`bar`,而`MyList <Bar>`不能保存`foo`.您仍然需要一个共同的祖先来继承/实现所有约束类型参数,以便`foo`和`bar`可以在单个列表中共存.还是我错过了什么? (2认同)