Обычно в Visual Basic используются массивы с нулевой базой. В системе нумерации с нулевой базой индекс для первого элемента в любом измерении массива является равным 0; массив с 10 элементами имеет индексы от 0 до 9. Очевидно, что система нумерации с нулевой базой может быть непонятной, потому что индекс 0, в действительности, обозначает 1-й элемент массива, индекс 5 обозначает 6-й элемент массива и так далее.
Было бы гораздо удобнее, если бы элементы массива нумеровались, начиная с 1, а не с 0. Если бы нумерация элементов начиналась с 1, то индекс 1 обозначал бы 1-й элемент массива, индекс 5 — 5-ый и так далее.
Visual Basic позволяет задавать начальное число для элементов массива либо при объявлении массива, либо с использованием директивы компилятора Option Base для указания того, должна ли нумерация индексов начинаться с 0 или с 1.
Директива компилятора Option Base имеет следующий синтаксис:
Синтаксис
Option Base 0 | 1
Оператор Option Base позволяет задавать 0 или 1 как начальное число по умолчанию для индексов массива. Если оператор Option Base не используется, Visual Basic начинает нумерацию индексов массива с 0 (по умолчанию). Необходимо помещать оператор Option Base в область объявлений модуля перед объявлениями любых переменных, констант или процедур. Нельзя помещать оператор Option Base внутри процедуры. Можно иметь только один оператор Option Base в модуле. Оператор Option Base влияет на все массивы, объявляемые в модуле, независимо от того, являются ли они локальными в процедуре или объявляются на модульном уровне.
Следующие два оператора являются примерами директивы компилятора Option Base:
Option Base 0 'установка по умолчанию
Option Base 1 'индексы массивов начинаются с 1