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

End Sub

Область видимости - это одно из двух ключевых слов
Public или Private. Они устанавливают, к какому классу принадлежит процедура: к классу локальных или классу глобальных процедур. Процедура является локальной (Private), если она доступна (видна) только внутри данного модуля и не может быть вызвана из других модулей. Процедура является глобальной (Public), если она доступна (видна) из других модулей.

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

Примечание: Чтобы объявить статическими только некоторые переменные, достаточно при описании переменных вместо ключевого слова Dim использовать Static.

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

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

В VISAUL BASIC параметры могут передаваться двумя способами:

- либо как ссылки (ByRef)

- либо как значение (ByVal)

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

По умолчанию параметры в VISAUL BASIC передаются по ссылке, но можно указывать явно ключевое слово ByRef перед параметром в заголовке процедуры:

Sub pr1(ByRef n As String)

При передаче параметра по значению VISAUL BASIC передает копию содержимого переменной вместо ее адреса в памяти, и функция или процедура не сможет напрямую модифицировать исходное значение. Ключевое слово ByVal перед параметром должно указываться обязательно:

Function fkl(ByVal k As String) As Boolean

VISUAL BASIC позволяет использовать в процедурах именованные параметры и создавать процедуры, в списке которых могут присутствовать необязательные параметры.

Именованные параметры

Использование именованных параметров позволяет передавать часть или все параметры в любом порядке.

При вызове процедуры следует именовать параметры:

имя параметра:=значение

Пример:

Private Sub Summa(a,b,c)

c=a+b

End Sub

Private Sub Command1_Click()

Summac:=S,b:=val(Text1.Text),a:=val(Text2.Text)

Text3.Text=Str(S)

End Sub

При вызове процедуры можно передавать как неименованные, так и именованные параметры. Однако, при этом как только в списке появился именованный параметр, то все следующие за ним параметры также должны быть именованными.

Необязательные параметры

Необязательным является параметр, значение которого может не задаваться при вызове процедуры. Для того чтобы параметр стал необязательным, перед его именем ставится ключевое слово Optional. Все последующие параметры после первого необязательного параметра также должны быть необязательными.

Пример:

Sub Pr(a, Optional b)

If IsMissing(b) Then

Print a,b

Else

Print a

EndIf

End Sub

Private Sub Command1_Click()

Pr 1

Pr 1,2

End Sub

Примечание: В примере показаны два варианта вызова процедуры Pr. В процедуре Pr функция IsMissing проверяет передан или нет аргумент типа Variant.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: