是否有想要将方法添加到集合/列表/现有具体对象的名称?

0 c# methods

所以说我上课了

public abstract class Mammal { ... }
public class Wolf : Mammal
{
   // concrete methods and 
 }
Run Code Online (Sandbox Code Playgroud)

但我不想做类似的事情:

List<Wolf> myWolfPack = new List<Wolf>();
Run Code Online (Sandbox Code Playgroud)

我想说:

WolfPack myWolfPack = new WolfPack();
Run Code Online (Sandbox Code Playgroud)

这意味着我基本上需要编写一个WolfPack类:

****public class WolfPack : IList<Wolf>
{
    // properties, methods that implements IList

  // WolfPack-specific methods
}****
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是因为我狼群具有特定属性(例如领导者,欧米茄).

  WolfPack-specific methods
    Wolf Leader { get;set; }
    Wolf Omega { get;set; }
Run Code Online (Sandbox Code Playgroud)

所以这是我的新手问题:

这个叫什么?是否有想要将方法添加到集合/列表/现有具体对象的名称?如果我只是在我的WolfPack类中使用私有List,那么我应该只说:public class WolfPack:List

?用一个具体的类来做这个似乎很奇怪,不是吗?这有什么缺点吗?

对不起,如果我的话很奇怪.

Tim*_*lds 6

我建议你使用组合而不是继承.像这样的东西:

public class WolfPack
{
    public IReadOnlyList<Wolf> Members { get; private set; }
    public Wolf Leader { get; private set; }
    public Wolf Omega { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

特定于WolfPack集合的任何操作都Wolf应该是WolfPack类的方法.这不需要对内部使用的.NET集合类进行任何修改.