Visual Basic 2010. Присвоение значения переменной.

Компьютеры программирование .net visual basic

.....................

Dim llines(,) As String

For w As Integer = 0 To worrd.GetUpperBound(0)
llines(v, w) = worrd(w)


Next
......................

worrd() это массив, который был заполнен ранее.


Почему я получаю сообщение, что переменная llines используется до того, как ей было присвоено хоть какое-нибудь значение?



Примечание:
v тоже имеет какое-то значение до входа в цикл

Примечание:
никакое. Я только начинаю заполнять массив в цикле, чтобы использовать его значения в дальнейшем.

Примечание:
- Никакого массива в llines пока нет -

Я новичок в VB. Поэтому никак не могу понять, почему нет никакого массива. Я cчитал, что в момент обявления появляется двумерный массив llines, заполненный мусором. Из Вашего комментария я понял, что это не так.

Для примера код на С:

int arr1[] = {'1','2','3','4','5'}; // объявление и заполнение первого массива

int arr2[5]; // объявление второго массива

int i = 0;
for(i=0;i<sizeof(arr);i++)
{
arr2[i] = arr1[i]; // заполнение второго массива
}



В чём разница?

Примечание:
Не скажу, что всё понял, но спасибо.

Так что мне делать сейчас? Забивать нулями двумерный массив llines(,) при объявлении?

Примечание:
Спасибо, но у меня этот массив динамический по сути самой задачи.
Ответы:
А какое значение Вы присвоили переменной llines до входа в цикл?
>никакое.
Вот это компилятору и не нравится.
>Я только начинаю заполнять массив в цикле
Какой массив? Никакого массива в llines пока нет. Вы же сами это сказали.
Массивы в .NET Framework — это ссылочные типы. И как для любого другого ссылочного типа, переменная с типом массива не содержит сам массив а лишь ссылку на некоторый массив или отсутствие массива. В вашем случае даже этого переменная llines не содержит, так как Вы не присвоили этой переменной какого-либо значения. Чтение переменных, которым не присвоенно какое-либо значение недопустимо.
>Забивать нулями двумерный массив llines(,) при объявлении?
Все массивы забиваются нулями при создании.
>Так что мне делать сейчас?
Вам нужно создать новый массив и присвоить его переменной:
Dim llines(,) As String=New String(10,20){}
Или сокращённо:
Dim llines(10,20) As String
>у меня этот массив динамический
Массивы в .NET Framework имеют фиксированный размер, определяемый при создании. Так что если Вы хотите динамический массив, то при необходимости расширения Вам нужно создавать новый массив большего размера и копировать туда содержимое из старого, либо использовать не массивы, а что-то другое.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.