Размер массива в Visual Basic?
В Visual Basic размер массива array объявляется с помощью верхней границы массива, где sub-arrays в большинстве языков размер static-array массива объявляется путем jsonarray указания количества элементов в массив. Если jsonarray вы не знаете об этом, тогда vb.net ваши массивы Visual Basic string-array в конечном итоге будут на array 1 элемент длиннее, чем вы character-arrays ожидали:
VB.NET:
Dim a(1) as Byte ' under the hood, translated to byte[2]
Console.WriteLine("{0}", a.Length) ' output 2
a(0) = 7 ' No error, element exists
a(1) = 7 ' No error, element exists, array length is 2
a(a.Length) = 7 ' error: Index was outside the bounds of the array.
C#:
byte[] a = new byte[1];
Console.WriteLine("{0}", a.Length); // output 1
a[0] = 7 // No error, element exists
a[1] = 7 // error: Index was outside of bounds of the array. (because array length is 1)
a[a.Length] = 7; // error: Index was outside the bounds of the array.
Причина, по vb которой Microsoft разработала vb VB.NET для определения размера jsonarray массивов на основе верхней vb границы, а не длины массива, заключается jsonarray в том, чтобы упростить перенос vb.net кода с VB6 на VB.NET. Начальный sub-arrays индекс массива VB6 равен vb 1, если вы не объявляете array-of-objects Option Base 0. Было обычным jsonarray делом перебирать массив размера bytearray N с помощью For i = 1 To N
. Разработав swift-array VB.NET, чтобы интерпретировать sub-arrays аргумент размера массива bytearray как верхнюю границу, а не vb.net количество элементов в массиве, старый javascript-array код VB6, который зацикливался static-array от 1 до N, можно было напрямую bytearray перенести на VB.NET. Массив swift-array в VB.NET будет иметь один arrays дополнительный элемент по vb.net сравнению с массивом в VB6 swift-array (элемент с индексом 0), но javascript-array в остальном будет вести себя bytearray так же, как в VB6.
Иногда sub-arrays можно увидеть, как люди утверждают, что character-arrays Visual Basic создает «бесполезный» элемент. Это array верно только при переносе vb устаревшего кода VB6, который sub-arrays не ожидал элемента с индексом array-of-objects 0. При написании нового кода swift-array вам просто нужно помнить, что javascript-array означает параметр размера sub-arrays (верхняя граница, а не количество array-of-objects элементов), и соответствующим character-arrays образом объявлять массивы. Просто array-of-objects уменьшите параметры размера static-array на единицу по сравнению с bytearray тем, что вы видели бы в C#. Результирующий vb массив будет содержать элементы char-array от a(0)
до a(a.Length-1)
, как и массив C#.
vb.net
arrays
Размер массива в Visual Basic?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.