В MonoDevelop я следующий код, который составляет:Почему бы не `new int [x] {}` быть действительным?
int[] row = new int[indices.Count]{};
Однако, во время выполнения, я получаю:
Matrix.cs (53,53): CS0150 Ошибки: константы значение, как ожидается (CS0150) (testMatrix)
Я знаю, что это значит ошибка и заставляет меня затем изменить размер массива:
int[] row = new int[indices.Count]{};
Array.Resize(ref row, rowWidth);
Это что-то, с чем мне приходится иметь дело, потому что я использую MonoDevelop на Linux? Я был уверен, что под .Net 3.5 я смог инициализировать массив с переменной, содержащей ширину массива. Может ли кто-нибудь подтвердить, что это изолировано? Если это так, я могу сообщить об ошибке в bugzilla.
Проблема, вероятно, потому, что вы смешиваете инициализации массива и инициализации объекта. Удалите '{}', и все будет хорошо. Кроме того, я попытался запустить этот массив в gsharp на OpenSuse11.2, и он немедленно скомпонован с включенным '{}'. –