[英]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.