Что лучше: отсчет индексации с нуля или с единицы? (Visual Basic)
В этом разделе проводится сравнение того, как Visual Basic и .NET Framework предоставляют доступ к символам в строке. .NET Framework символы в строке считает с нуля, тогда как Visual Basic введет индексацию либо с нуля, либо с единицы, в зависимости от функции.
Индексация с единицы
Примером функции Visual Basic, ведущей отсчет с единицы, является функция Mid. Она принимает аргумент, указывающий положение символа, с которого будет начинаться подстрока, начиная с позиции 1. Метод .NET Framework String.Substring принимает индекс символа в строке, с которого начинается подстрока, начиная с позиции 0. Следовательно, если имеется строка "ABCDE", то отдельные символы нумеруются как 1,2,3,4,5 для использования в функции Mid, но как 0,1,2,3,4 для использования в методе String.Substring.
Индексация с нуля
Примером функции Visual Basic, ведущей отсчет с нуля, является функция Split. Она разбивает строку и возвращает массив, содержащий подстроки. В методе .NET Framework String.Split также разбивается строка и возвращает массив, содержащий подстроки. Поскольку функция Split и метод Split возвращают массивы .NET Framework, индексация у них должна вестись от нуля.
См. также
Задачи
Устранение неполадок при работе с коллекциями (Visual Basic)