在这里的项目中,我们有一个Object ClassTest,它有许多子对象:
public class ClassTest
{
public bool[] abTestAvailable = new bool[_TESTS];
public ClassTest_FCT_Extern Test_FCT_Extern = API.Serializer.Load<ClassTest_FCT_Extern>(API.Workstation.strPath_Hardware + "FCT_Extern.xml");
// ...
现在的想法是,Test_FCT_Extern
在初始化期间设置abTestAvailable
:
public class ClassTest_FCT_Extern
{
public bool TestAvailable
{
get { return API.Test.abTestAvailable[(int)ClassTest.IndividualTest.FCT_Extern]; }
set { API.Test.abTestAvailable[(int)ClassTest.IndividualTest.FCT_Extern] = value; }
}
但是这失败了,因为在创建API.Test objects
期间,创建了API.Test.Test_FCT_Extern
。因此,此时API.Test
仍然不存在且数组abTestAvailable
尚未初始化。
我现在已经找到了适用于我们案例的解决方案,但也许有更智能的方法来访问父项参数。
答案 0 :(得分:0)
在我们的例子中,解决方案是使数组静态:
public class ClassTest
{
public static bool[] abTestAvailable = new bool[_TESTS];
静态数组在创建对象之前初始化
public class ClassTest_FCT_Extern
{
public bool TestAvailable
{
get { return ClassTest.abTestAvailable[(int)ClassTest.IndividualTest.FCT_Extern]; }
set { ClassTest.abTestAvailable[(int)ClassTest.IndividualTest.FCT_Extern] = value; }
}
工作正常,毫无例外。 道德:尽可能保持静止!