如何在创建期间访问父对象(两个对象)
本文关键字:对象 两个 访问 创建 | 更新日期: 2023-09-27 18:18:08
在这里的一个项目中,我们有一个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
还没有初始化。
我现在已经找到了一个解决方案,但也许有更聪明的方法来访问父母的参数。
在我们的例子中,解决方案是使数组静态:
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; }
}
工作正常,没有例外。寓意:尽可能制作静态的!