从通用列表实例化中调用非默认构造函数

时间:2015-10-22 12:41:22

标签: c# generics generic-list

我有一个名为Fred的类,其构造函数采用参数parmA,我想将其传递给名为MyList的类型MultiCtorClass的通用List的初始化。

MultiCtorClass的默认构造函数将ParmB传递给它的基础;我想调用MultiCtorClass的另一个构造函数,从Fred的初始化中传入parmA。

public class Fred
{
    public Fred(parmType parmA)
    {
        MyList = new List<MultiCtorClass>();
    }

    public IEnumerable<MultiCtorClass> MyList { get; set; }
}

public class MultiCtorClass : MyBase
{
    public MultiCtorClass()
        : this(parmB)
    {
    }

    public MultiCtorClass(parmType parm)
        : base(parm)
    {
    }
}

我实际上是在尝试执行以下操作:

    public Fred(parmType parmA)
    {
        MyList = new List<MultiCtorClass(parmA)>();
    }

如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

在任何一种情况下你都没有调用任何构造函数 - 列表为空。您只在创建新项目时调用构造函数,例如

MyList.Add(new MultiCtorClass(...));

你可以随意选择你的构造函数:)