我可以使用基类的实例初始化派生类吗?

时间:2010-02-12 11:27:18

标签: c# inheritance constructor

示例:

public class MyList<T> : List<T> {
    public MyList(List<T> list) {
        this = list;  // this is basically what I want, but doesn't work
        base = list;  // this also doesn't work
    }
}

任何解决方案?或者我正在努力实现一个简单的想法?

动机:我想为List对象添加自定义函数。

4 个答案:

答案 0 :(得分:3)

如果您使用.Net framework 3.5,那么在列表中定义扩展方法会不会更容易。像......一样......

public static class MyListExtensionClass
{
    public static void MyList<T>(this List<T> list)
    {
        // Your stuff
    }
}

答案 1 :(得分:1)

你不能这样做:

public MyList(List<T> list) : base(list)

或者,你不能在List对象上使用扩展方法吗?

答案 2 :(得分:0)

public MyList(List list):base(list)

这将调用基类的以下构造函数(在本例中为List):

public List(IEnumerable<T> collection);

答案 3 :(得分:0)

public class MyList<T> : List<T>
{
  public MyList(List<T> list)
  {
    AddRange(list);
  }
}