Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

End Function




Описывает имя, аргументы и текст программы, составляющий тело процедуры Function.

Шаг 23 - Инструкция Function

Next Words

 

 

[Public | Private] [Static] Function имя [(списокАргументов)] [As тип]

[инструкции]

[имя = выражение]

[Exit Function]

[инструкции]

[имя = выражение]

Параметры
Public: Необязательный. Указывает, что процедура Function доступна для всех других процедур во всех модулях. При использовании в личном модуле (содержащем инструкцию Option Private) такая процедура недоступна вне проекта.
Private: Необязательный. Указывает, что процедура Function доступна для других процедур только того модуля, в котором она описана.
Static: Необязательный. Указывает, что локальные переменные процедуры Function сохраняются в промежутках времени между вызовами этой процедуры. Атрибут Static не действует на переменные, описанные вне процедуры Function, даже если они используются в этой процедуре.
Имя: Обязательный. Имя процедуры Function, удовлетворяющее стандартным правилам именования переменных.
СписокАргументов: Необязательный. Список переменных, представляющий аргументы, которые передаются в процедуру Function при ее вызове. Имена переменных разделяются запятой.

· Optional - Необязательный. Указывает, что этот аргумент необязателен. При использовании этого элемента все последующие аргументы, которые содержит списокАргументов, также должны быть необязательными и быть описаны с помощью ключевого слова Optional. Не допускается использование ключевого слова Optional для любого из аргументов, если используется ключевое слово ParamArray.

· ByVal - Необязательный. Указывает, что этот аргумент передается по значению.

· ByRef - Необязательный. Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в Visual Basic по умолчанию.

· ParamArray - Необязательный. Используется только в качестве последнего элемента в списке списокАргументов для указания, что конечным аргументом является описанный как Optional массив типа Variant. Ключевое слово ParamArray позволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional.

· имяПеременной - Обязательный. Имя переменной, удовлетворяющее стандартным правилам именования переменных.

· тип - Необязательный. Тип данных аргумента, передаваемого в процедуру; допускаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается) Date, String (только строки переменной длины), Object, Variant. Если отсутствует ключевое слово Optional, допускается указание определяемого пользователем типа или объектного типа.

· поУмолчанию - Необязательный. Любая константа или выражение, дающее константу. Используется только вместе с параметром Optional. Если указан тип Object, единственным значением по умолчанию может быть значение Nothing.

Тип: Необязательный. Тип данных значения, возвращаемого процедурой Function, поддерживаются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (за исключением строк фиксированной длины), Object, Variant или любой определяемый пользователем тип. Невозможен возврат массивов любого типа, однако допускается возврат значения типа Variant, содержащего массив.
Инструкции: Необязательный. Любая группа инструкций, выполняемых внутри процедуры Function.
Выражение: Необязательный. Возвращаемое значение процедуры Function.

Замечания
Процедуры Function, не описанные явно с помощью ключевых слов Public или Private, по умолчанию являются общими. Если не используется ключевое слово Static, значения локальных переменных не сохраняются между вызовами.
Допускаются рекурсивные процедуры Function; то есть они могут вызывать сами себя для выполнения определенных задач. Однако рекурсия может приводить к переполнению стека. Ключевое слово Static обычно не используется с рекурсивными процедурами Function.
Все выполняемые команды должны содержаться в процедурах. Не допускается определение процедуры Function внутри другой процедуры Function, Sub или Property.
Инструкция Exit Function приводит к немедленному выходу из процедуры Function. Выполнение программы продолжается с инструкции, следующей за инструкцией, в которой была вызвана процедура Function. В любом месте процедуры Function возможно наличие любого числа инструкций Exit Function.
Подобно процедуре Sub, процедура Function является самостоятельной процедурой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Однако в отличие от процедуры Sub, когда требуется использовать возвращаемое функцией значение, процедура Function может применяться в правой части выражения, как и любая другая встроенная функция, например, Sqr, Cos или Chr.
Процедура Function вызывается в выражении по своему имени, за которым следует список аргументов в скобках. Для получения дополнительных сведений о вызовах процедур Function см. описание инструкции Call.
Для возврата значения из функции следует присвоить значение имени функции. Любое число таких инструкций присвоения может находиться в любом месте процедуры. Если имени процедуры не присваивается никакого значения, процедура возвращает значение по умолчанию: числовая функция возвращает нулевое значение, строковая функция возвращает значение пустой строки (""), а функция типа Variant возвращает значение Empty. Функция, которая возвращает ссылку на объект, возвращает значение Nothing, если внутри процедуры Function никакая ссылка на объект не присваивается имени функции с помощью инструкции Set.
В следующем примере демонстрируется присвоение возвращаемого значения функции BinarySearch. В этом случае имени присваивается значение False, чтобы указать, что некоторое значение не было найдено.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 352; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.