如何在创建(两个对象)期间访问父对象?

时间:2011-12-16 10:25:03

标签: c# oop

在这里的项目中,我们有一个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尚未初始化。

我现在已经找到了适用于我们案例的解决方案,但也许有更智能的方法来访问父项参数。

1 个答案:

答案 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; }
    }

工作正常,毫无例外。 道德:尽可能保持静止!