我是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 :(得分:3)
您已将m_valsetup
设为静态属性,但每次创建TestSetups
的新实例时都会重新初始化。如果您希望它是TestSetups
的所有实例的共享列表,那么您可以使用这样的属性初始值设定项:
private static List<TabelaCtsca> m_valsetup = new List<TabelaCtsca>();
并在构造函数中删除它的初始化。
如果您不打算共享该列表,请从其定义中删除static
关键字。