2010-07-14 2 views
0

Если я dim массив, чтобы сказать, 5 элементов, если он не провалится, если я пойду добавить 6-й? Я думал, что для этого требовалось redim. В .NET 2.0 у меня есть массив символов length = 3. Когда я заполняю его из db, у одной записи было 4 символа, и он успешно добавил все 4 символа в массив?Являются ли массивы действительно фиксированной длиной в ASP.NET 2.0?

+0

Пример кода. Массивы фиксированной длины, и списки могут соответственно расти. – Robert

ответ

3

Если вы назначили массив символов существующей переменной массива, содержащей массив (любого размера), он создает новый массив требуемого размера. В исходном массиве собран мусор.

char[] c = new char[3]; 
c = reader.ReadCharacters(5); // read 5 characters into new array, assign to c 
Debug.Print(c.Length);   // Prints 5. 
+0

Кажется странным, что после определения его как 5, отдельно, при чтении из db я должен указать только захватить 5 символов. – donde

+1

Подумайте о переменной массива, содержащей ссылку на массив в куче. Когда вы назначаете новый массив переменной, теперь переменная содержит ссылку на новый массив, а не старый. –

1

Просто добавьте текущий ответ, если это была проблема. В VB.NET вы объявляете массивы с верхней границей, а не желаемой длиной.

Например:

Dim arr(3) as Integer 'length of 4 

Этот массив имеет 4 элемента, 0 - 3. Это делает не имеют длину 3, как было бы в случае, если вы это сказали в C#:

int[] arr = new int[3]; //length of 3 

Я не знаю, если это ваша проблема, но на всякий случай.

Смежные вопросы