2015-04-14 100 views
1

我是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>(); 
    } 
} 

我有另一个class称为TestCase

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属性总是空的,当我的时候去另一个迭代。

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

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

+0

你能展示函数的其余部分吗?它从哪里来的。 – jbriggs

回答

3

您已将m_valsetup设为静态属性,但每次创建TestSetups的新实例时都要重新初始化。如果你希望它是横跨TestSetups所有实例共享列表,那么你可以使用属性初始化是这样的:

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

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

如果您不打算共享列表,请从其定义中删除static关键字。

+0

我想要一个带有ValSetups列表的TestSetup列表的TestCase。在您的解决方案中,我拥有所有TestSetup中的所有ValSetups。 – milheiros

+0

我做到了!非常感谢。 – milheiros

相关问题