Ключевое слово Optional
При определении функции можно указать, что некоторые из передаваемых параметров являются необязательными. Для этого перед определением параметра ставится ключевое слово Optional:
Public Function CreateUser (UserID as string, _
Password as string, _
Optional Description as string) as boolean
При объявлении необязательных параметров все последующие аргументы тоже должны быть необязательными и объявляться с ключевым словом Optional.
Ключевое слово ByRef
Префикс ByRef означает, что параметр передается по ссылке (по умолчанию в Visual Basic используется именно такой способ передачи). Когда переменная передается по ссылке, функция или процедура получает ее адрес в памяти и может изменить фактическое значение переменной. Передача по ссылке позволяет передать или получить несколько результатов при одном вызове функции. Так как передача по ссылке используется по умолчанию, указывать ByRef в объявлении собственных функций необязательно. Тем не менее это ключевое слово довольно часто используется при работе с DLL.
Ключевое слово ByVal
Префикс ByVal говорит о том, что параметр передается по значению. В этом случае Visual Basic передает копию текущего содержимого переменной вместо ее адреса и функция или процедура не сможет напрямую модифицировать исходное значение.
Function Fname (ByVal Avariable as string) as boolean
Ключевое слово ParamArray
Ключевое слово ParamArray позволяет передать функции неопределенное количество параметров. Например, с его помощью можно передать функцииCreateUser сведения о произвольном количестве пользователей. Одно из требований, связанных с ключевым словом ParamArray, состоит в том, что передаваемый массив данных должен иметь тип Variant. Объявление функции должно иметь следующий синтаксис:
Function Fname(ParamArray AnArray() as Variant) as boolean
В этом случае функция может вызываться так:
Dim Rc as boolean
Rc = Fname("Джон","Джейн","Джин","Дженни")
Rc = Fname("Джеймс")
Rc = Fname("Джерри","Джеки")
Такую функцию можно вызвать с любым количеством параметров, что делает ее болеее универсальной, но за это приходится расплачиваться скоростью выполнения программы: данные типа Variant обрабатываются медленнее, чем другие типы Visual Basic.
Похожие записи
- No related posts found