Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> Основы программирования >> Именованные аргументы >> Передача аргументов в процедуру

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Передача аргументов в процедуру


Если процедуре необходимы дополнительные данные и их нельзя получить из контекста, в котором она выполняется, то эти данные следует передать ей как аргументы. Чтобы указать, что процедура принимает аргументы, перечислите их между скобками за именем процедуры в ее объявлении. Аргументы отделяются запятыми.

Объявляя аргумент, можно задать его тип данных с помощью ключевого слова As (изменяет ли процедура значение аргумента, определяется ключевыми словами ByVal и ByRef), а также определить, обязателен ли аргумент, для чего предназначено ключевое слово Optional. Подробнее об этих ключевых словах см. соответствующие разделы справочной системы; о типах данных в Visual Basic см. раздел ?Типы данных в Visual Basic? далее в этой главе.

Взгляните, как объявлена процедура Sub, принимающая 3 аргумента:

Sub UpdateRecord(ByVal custId As Long. ByRef custName As String, _
     Optional custRepeat As Boolean)

Первый аргумент, custId, обязателен и передается по значению как тип Long. Если аргумент передается в процедуру по значению, процедура получает j лишь копию переменной, переданной вызывающей процедурой. Если вызываемая процедура модифицирует это значение, то изменится только копия, а не сама переменная в вызывающей процедуре.

Второй аргумент, сustName, тоже обязателен, но передается по ссылке как тип String. В этом случае процедура имеет доступ к исходной переменной в памяти, и поэтому способна изменить ее значение.

Третий аргумент, custRepeat, не обязателен и передается по ссылке как тип Boolean. (По умолчанию аргументы всегда передаются по ссылке.)

Вот пример вызова процедуры UpdateRecord:

Dim newld As Long
Dim newMame As String
Dim newRepeat As Boolean
newld = 3452
newName = "Mary Boyd"
newRepeat = True
UpdateRecord newld, newName, newRepeat

Имя переменной, передаваемой в процедуру, необязательно должно совпадать с именем аргумента в объявлении этой процедуры.



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017