C#中的集合和对象初始化器

周杰伦

我需要将对父对象的引用存储在如下所示的分层数据集中。甚至可以使用对象初始化程序吗?是否有任何关键字指向“父”初始化程序,还是我必须以经典方式进行此操作-首先声明父对象?

(我不知道在'?'字符之间写什么)

Scenarios.Add(new Scenario()
{
    scenarioNumber = Scenarios.Count,
    scenarioDescription = "Example scenario",
    Steps = new BindingList<Step>()
    {
        new Step(){ parent = ?Scenario?, stepNumber = 1, subSteps = new BindingList<Step>() },
        new Step(){ parent = ?Scenario?, stepNumber = 2, subSteps = new BindingList<Step>() },
        new Step(){ parent = ?Scenario?, stepNumber = 3,
            subSteps = new BindingList<Step>()
            {
                new Step() { parent = ?Step?, stepNumber = 1, subSteps = new BindingList<Step>() },
                new Step() { parent = ?Step?, stepNumber = 2, subSteps = new BindingList<Step>() },
            },
        }
    }
});  
日常

对象初始化程序构造不允许这样做。

您可以改用静态工厂方法,例如:

static Scenario Create(int scenarioNumber, string scenarioDescription, BindingList<Step> steps)
{
    var scenario = new Scenario()
    {
        scenarioNumber = scenarioNumber,
        scenarioDescription = scenarioDescription,
    };
    foreach (var step in steps)
    {
        step.parent = scenario;
    }
    scenario.Steps = steps;
    return scenario;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章