繁体   English   中英

如何将类属性添加到实例列表

[英]How to add a class property to a list of instances

我是C#新手。 也许这太简单了解决,但我真的不在乎解决方案。

我有这门课:

public class TestSetups : TabelaCtset
{
    public IList<TabelaCtsca> ValSetup { get { return m_valsetup; } }
    private static List<TabelaCtsca> m_valsetup;

    /// Constructor
    public TestSetups(IDefinitionList dlist)
        : base(dlist)
    {
        m_valsetup = new List<TabelaCtsca>();
    }
}

我有另一个名为TestCase class

public class TestCase : TabelaCttes
{
    public IList<TestSetups> Setups { get { return m_setups; } }
    private List<TestSetups> m_setups;
...
    testcase.m_setups = new List<TestSetups>();

    defs = gdl.GetDefinitions(testcase);
    while (defs.MoveNext())
        {
            TestSetups testsetup = new TestSetups(defs);
            IDefinitionList valsetup = gdl.GetDefinitions(testsetup);
            {
                TabelaCtsca ctsca = new TabelaCtsca(valsetup);
                testsetup.ValSetup.Add(ctsca);
            }
            testcase.Setups.Add(testsetup);    
        }
        return testcase;
...
}

我想将所有ctsca值放在ValSetup列表中。 一切正常,除了这行testcase.Setups.Add(testsetup); :我有TestSetups类的属性,但是我的ValSetup属性总是空的,当我的while进入另一个迭代时。

对不起这个奇怪的解释。 我能够更详细地解释一下。

更新:在这种情况下,我在每个TestSetup中存储最后一个ValSetup值,而不是每个TestSetup的所有ValSetup。

您已将m_valsetup静态属性,但每次创建TestSetups的新实例时都会重新初始化。 如果您希望它成为所有TestSetups实例的共享列表,那么您可以使用如下所示的属性初始值设定项:

private static List<TabelaCtsca> m_valsetup = new List<TabelaCtsca>();

并在构造函数中删除它的初始化。

如果您不打算共享列表,那么只需从其定义中删除static关键字即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM