Это распространенная проблема при изучении этого нового синтаксиса для инициализации массивов.Можно легко перепутать следующие два, чтобы сделать то же самое, и оба работают:
int[] a = { 1, 2, 3 };
и
int[] a;
a = { 1, 2, 3 };
, но, к сожалению, это не так.Синтаксис = { elements }
разрешен только при объявлении переменной.
Вместо этого у вас есть две альтернативы, и здесь я переключусь на ваш пример:
proc = new[] { ... elements ... };
proc = new Process[] { ... elements ... };
Вы можете отбросить Process
часть, если компилятор может понять, что вы создаете массив Process
объектов, что он может в вашем случае.
Теперь, сказав все это, это только объясняетошибка компилятора.
My думаю, в том, что вы не хотите, чтобы он вел себя так.Вы объявили и инициализировали массив proc
, содержащий 999 элементов, вы , вероятно, не хотите переназначать весь массив на каждой итерации цикла.
В принципе, я думаю, что вы хотите это:
proc[i] = new Process(i, bts[i], 1);
(или какой-то вариант этого).Это назначит новый объект Process
одному из существующих элементов массива из 999 элементов.