具有集合作为属性与类继承集合的类

wwi*_*ins 8 c# inheritance class

最近我使用了一个继承自集合的类,而不是在类中实例化集合,这是否可以接受,还是会在未来的路上产生看不见的问题?以下示例为了清楚起见:

public class Cars : List<aCar>
Run Code Online (Sandbox Code Playgroud)

而不是像:

public class Cars
{
 List<aCar> CarList = new List<aCar>();
}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

Mic*_*rdt 10

这样做的问题是你的Cars类仍然具有它从List继承的接口,这可能允许你不想要的操作.


Igo*_*aya 6

这取决于你班级的最终目的.如果它只是作为你自己的集合实现工作使用继承.如果没有,请将集合作为属性包含在内.第二种选择更通用:

  • 由于您只能从一个类继承,因此可能需要从另一个类而不是集合继承
  • 如果您需要将此类视为集合,则可以包含索引器属性.