根据运行时计数值动态创建对象 - C#

时间:2012-01-09 11:14:09

标签: c#

我正在尝试实施的方案的简单示例

class ATest
{
    int a;
    int b;
    BTest[];
}

class BTest
{
    int X;
    int Y;
}
  • 我需要根据值动态创建ATestBTest
  • 我尝试了Atest[] aobj = new Atest[count];(此计数值将以编程方式设置)
  • 现在我需要动态创建B对象数组并将其分配给A
  • 目前我假设count的静态值并将其分配

    Atest[] aobj = new Atest[20];   
    BTest[] bobj = new BTest[1];
    bobj[0] = new Btest();
    aobj[0] = new ATest();
    aobj[0].BTest = bobj;
    BTest[] bobj1 = new BTest[1];
    bobj1[0] = new Btest();
    aobj1[0].BTest = bobj1;
    

这可能不是编码的最佳方式。

请建议动态实施它 - 动态创建多个BTest对象数组,并为ATest实例分配

1 个答案:

答案 0 :(得分:2)

尝试使用构造函数:

class ATest {
    int a;
    int b;
    BTest[] btests;
    public ATest(int numOfB) {
        btests = new BTest[numOfB];
    }
}

您可以在一个简单的循环中创建和初始化您的测试:

int M = 20; // Number of Test A objects
int N = 10; // Number of Test B objects per Test A
var atests = new ATest[M];
for (var i = 0 ; i != M ; i++) {
    atests[i] = new ATest(N);
}