| Пользователь | Сообщение |
|---|
agrasteya
Сообщений:4 Репутация:0,4
| Здравствуйте.
Начал разбираться с C#. Столкнулся с проблемой
string query = "kakaya nibyd fignya";
string [] separated;
if (query.IndexOf("\r\n") != -1) separated = parseQuery(query);
else separated[0] = query;
parseQuery возвращает string[].
Отвечает "Использование локальной переменной "separated", которой не присвоено значение", ссылаясь на строку else separated[0] = query;
Подскажите, где я ошибся и как надо?
Спасибо.
| Отправлено: 12.01.2010 23:44:00 | Для ответа необходима авторизация |
|
james
Сообщений:57 Репутация:10,9
| У тебя в ветке else массив не инициализирован
соответственно он не может строку query поместить в первый элемент массива так как его нет
тебе надо на этапе объявления массива
string[] separated;
определить его или позже но до работы с массивом
| Отправлено: 13.01.2010 8:55:12 | Для ответа необходима авторизация |
|
agrasteya
Сообщений:4 Репутация:0,4
| Если я правильно понимаю, то инициализация это указание количества элементов в массиве, но проблема в том, что parseQuery(query) возвращает неизвестное (более одного) количество элементов. Каким образом мне инициализировать массив в для parseQuery(query)?
| Отправлено: 13.01.2010 10:09:00 | Для ответа необходима авторизация |
|
james
Сообщений:57 Репутация:10,9
| На сколько я понял у вас ругается не на вот эту строку
separated = parseQuery(query);
|
а на
в первом случае ошибки быть не должно массив инициализируется массивом переданным из parseQuery
а во втором массив получается не инициализированным (в нем нет ни одного элемента)
если у Вас в Else всегда будет один элемент массива то можете сделать так
separated = new string[]{query};
|
| Отправлено: 13.01.2010 10:22:22 | Для ответа необходима авторизация |
|
agrasteya
Сообщений:4 Репутация:0,4
| Спасибо. Это сработало. Правда, признаюсь, логика этих событий для меня остается не до конца ясной.
| Отправлено: 13.01.2010 23:28:00 | Для ответа необходима авторизация |
|
james
Сообщений:57 Репутация:10,9
| Без инициализации массива Вы не можете делать
потому что в массиве еще нет элементов.
Если вам нужны динамические массивы, то попробуйте ArrayList
только ArrayList хранит тип object и при использовании его в дальнейшем придется явное преобразование к string
| Отправлено: 14.01.2010 9:25:00 | Для ответа необходима авторизация |
|