Я пытаюсь создать одномерный массив типа 'string', а после добавить в него значение переменной, как итог, возникает ошибка
Возможно я не понял саму логику массивов и из-за этого не могу адекватно с ними работать, из-за чего возникают небольшие трудности. Возможно для вас это покажется слишком очевидно, но я ищу решение этой проблемы уже 3 дня. Воссоздам пример моей попытки добавления переменной в массив:
public double[] PriceList; // массив параметры которого я задаю в Unity
public string[] resultMoney; // массив параметры которого я пытаюсь задать в коде
void Update()
{
string resultMoney[0] = { string.Format("{0:f1}", Money) }; // редактирую формат отображения float числа
MoneyText.text = resultMoney[0] + "$"; // попытка присвоения массива с индексом 0 - тексту
}
Как итог, Unity не даёт запустить данное приложение (ошибок тоже не выдаёт). Если я сделаю подобное с переменной, то это сработает.
Ответы (3 шт):
Если хочется на ходу добавлять элементы - для этого существует вместо массива List<String>. Массивы же созданы для статического неизменного количества элементов.
Судя по коду из вопроса resultMoney не инициализирован в принципе. Его как такового в памяти вообще не существует.
А ты на каждом кадре обращаешся к нулевому элементу несуществующего массива и пытаешься в него записать значение.
Даже более того, ты обращаешся не к глобальному resultMoney, а пытаешься создавать локальный
Проблема была решена, нужно было изменить вариант присвоения переменной к массиву.
Из:
public string[] resultMoney;
// ...
string resultMoney[0] = { string.Format("{0:f1}", Money) };
На:
public string[] resultMoney;
// ...
resultMoney[0] = string.Format("{0:f1}", Money);
Ошибка в том, что ты используешь массив не инициализируя его.
string[] m = new string[3]; //если массив имеет 3 элемента.