如何在c#中使用动态分配来创建类对象数组?

时间:2010-05-28 20:31:14

标签: c# dynamic allocation

我创建了一个名为x的类; 所以我想用动态分配来制作它的数组

x [] myobjects = new x();

但它给了我那个错误

  

无法将类型'ObjAssig4.x'隐式转换为'ObjAssig4.x []'

我知道这是转储问题,但我是初学者

感谢

5 个答案:

答案 0 :(得分:5)

x[] myobjects = new x[10];

对于数组,您不会使用parens'new x()'创建一个新数组 但是数组不是动态的。 您可以使用Array.Resize来改变它的大小,但您可能正在使用List

List<x> myobjects = new List<x>();
myobjects.add(new x());

答案 1 :(得分:1)

您不想使用数组而是使用list

List<SomeObject> myObjects = new List<SomeObject>();

仅供参考,你declaring the array错了。

应该是

x [] myobjects = new x [5];

答案 2 :(得分:1)

x [] myobjects = new x[numberOfElements];

创建numberOfElements类型x对象的x引用数组。最初这些引用为空。您必须单独创建对象x [] myobjects = new x[3] {new x(), new x(), new x()}; 并在您的数组中存储对它们的引用。

您可以使用以下初始化列表创建一个数组和一些引用最终会在数组中的对象:

{{1}}

答案 3 :(得分:1)

我发现我可以做到这一点

x [] myobjects = new x[]{
   new myobjects{//prop. goes here},
   new myobjects{//prop. goes here}
}

答案 4 :(得分:0)

错误

  

无法隐式转换类型   'ObjAssig4.x'到'ObjAssig4.x []'

告诉您正在尝试声明新的x并将其分配给您的阵列。相反,您需要声明一个新数组(也需要一个大小):

x[] myobjects = new x[100];