Массивы параметров
Обновлен: Ноябрь 2007
Обычно в вызове процедуры не может быть больше аргументов, чем в ее объявлении. Если точное число аргументов, которые предстоит использовать, неизвестно, то можно объявить массив параметров, который позволяет процедуре принять в качестве параметра массив значений. При определении процедуры необязательно указывать количество элементов в массиве параметров. Размер массива определяется заново при каждом вызове процедуры.
Объявление ParamArray
Ключевое слово ParamArray используется для обозначения массива параметров в списке параметров. Действуют следующие правила.
Процедура может определять только один массив параметров, и он должен быть последним параметром в определении процедуры.
Массив параметров должен передаваться по значению. Рекомендуется включать явным образом ключевое слово ByVal в определение процедуры.
Массив параметров всегда является необязательным. По умолчанию его значением является пустой одномерный массив с заданным для массива параметров типом элемента массива.
Все параметры, предшествующие в списке массиву параметров, должны быть обязательными. Массив параметров должен быть единственным опциональным параметром.
Дополнительные сведения см. в разделе Практическое руководство. Определение процедуры с неопределенным числом параметров.
Вызов ParamArray
При вызове процедуры, определяющей массив параметров, можно указать аргумент одним из следующих способов:
Ничего, т.е. опустить аргумент ParamArray. В этом случае процедуре передается пустой массив. Такой же результат дает использование ключевого слова Nothing (Visual Basic).
Список из неопределенного числа аргументов, разделенных запятыми. Тип данных каждого из аргументов должен неявным образом преобразовываться в тип элемента ParamArray.
Массив с элементами того же типа, что и в массиве параметров.
Во всех случаях код в процедуре должен обрабатывать массив параметров как одномерный массив, каждый элемент которого имеет тот же тип данных, что и ParamArray.
Дополнительные сведения см. в разделе Практическое руководство. Вызов процедуры, принимающей неопределенное число параметров.
Примечание о безопасности. |
---|
При работе с неограниченно большим массивом есть риск переполнения некоторой внутренней емкости приложения. Если принимается массив параметров, то следует проверить размер массива, переданного вызывающим кодом. Предпринять соответствующие действия, если он слишком велик для приложения. Дополнительные сведения см. в разделе Практическое руководство. Определения размера массива. |
См. также
Основные понятия
Параметры и аргументы процедуры
Передача аргументов по значению или по ссылке
Передача аргумента по позиции и по имени