Как сделать массив объектов класса, используя динамическое размещение в C #? - PullRequest
2 голосов
/ 29 мая 2010

я создал класс с именем x; поэтому я хочу сделать из него массив с использованием динамического выделения

x [] myobjects = new x();

но это дает мне эту ошибку

Невозможно неявно преобразовать тип 'ObjAssig4.x' в 'ObjAssig4.x []'

я знаю, что это вопрос с дампом, но я новичок

спасибо

Ответы [ 5 ]

5 голосов
/ 29 мая 2010
x[] myobjects = new x[10];

Для массива вы не создаете новый с парэнсом 'new x ()' Массив не является динамическим, хотя. Вы можете использовать Array.Resize, чтобы изменить его размер, но вы, вероятно, после List

List<x> myobjects = new List<x>();
myobjects.add(new x());
1 голос
/ 04 марта 2014

Я обнаружил, что я могу сделать это

x [] myobjects = new x[]{
   new myobjects{//prop. goes here},
   new myobjects{//prop. goes here}
}
1 голос
/ 29 мая 2010
x [] myobjects = new x[numberOfElements];

Создает массив numberOfElements ссылок на объекты типа x. Первоначально эти ссылки являются нулевыми. Вы должны самостоятельно создавать объекты x и сохранять ссылки на них в своем массиве.

Вы можете создать массив и некоторые объекты, чьи ссылки окажутся в массиве, используя список инициализации, например:

x [] myobjects = new x[3] {new x(), new x(), new x()};
1 голос
/ 29 мая 2010

Вы не хотите использовать массив, но список

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

К вашему сведению, вы объявили массив тоже неправильно.

Это должно быть

x [] myobjects = new x [5];

0 голосов
/ 29 мая 2010

Ошибка

Невозможно неявно преобразовать тип От ObjAssig4.x до ObjAssig4.x [] '

говорит вам, что вы пытаетесь объявить новый x и присвоить его вашему массиву. Вместо этого вам нужно объявить новый массив (который также будет нуждаться в размере):

x[] myobjects = new x[100];
...