Поиск…
Введение в процедуры
Sub
- это процедура, которая выполняет определенную задачу, но не возвращает определенное значение.
Sub ProcedureName ([argument_list])
[statements]
End Sub
Если не указан модификатор доступа, процедура является Public
по умолчанию.
Function
- это процедура, которая задает данные и возвращает значение, в идеале без глобальных или объемных побочных эффектов.
Function ProcedureName ([argument_list]) [As ReturnType]
[statements]
End Function
Property
- это процедура, которая инкапсулирует данные модуля. Свойство может иметь до 3-х аксессуаров: Get
чтобы вернуть значение или ссылку на объект, Let
назначить значение и / или Set
для назначения ссылки на объект.
Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
[statements]
End Property
Свойства обычно используются в модулях классов (хотя они также разрешены в стандартных модулях), предоставляя доступ к данным, которые в противном случае недоступны для вызывающего кода. Свойство, которое предоставляет только доступ к Get
является «только для чтения»; свойство, которое будет раскрывать только атрибут Let
и / или Set
является «только для записи». Свойства Write-only не считаются хорошей практикой программирования - если код клиента может написать значение, он должен иметь возможность прочитать его обратно. Рассмотрите возможность выполнения процедуры Sub
вместо создания свойства для записи.
Возврат значения
Процедура Function
или Property Get
может (и должна!) Возвращать значение своему вызывающему. Это делается путем назначения идентификатора процедуры:
Property Get Foo() As Integer
Foo = 42
End Property
Функция с примерами
Как указано выше, функции представляют собой более мелкие процедуры, содержащие небольшие фрагменты кода, которые могут повторяться внутри процедуры.
Функции используются для уменьшения избыточности кода.
Подобно процедуре, функция может быть объявлена с или без списка аргументов.
Функция объявляется как возвращаемый тип, так как все функции возвращают значение. Имя и возвращаемая переменная функции являются одинаковыми.
Функция с параметром:
Function check_even(i as integer) as boolean if (i mod 2) = 0 then check_even = True else check_even=False end if end Function
Функция без параметра:
Function greet() as String greet= "Hello Coder!" end Function
Функция может быть вызвана различными способами внутри функции. Поскольку функция, объявленная с типом возвращаемого значения, в основном является переменной. он используется аналогично переменной.
Функциональные вызовы:
call greet() 'Similar to a Procedural call just allows the Procedure to use the
'variable greet
string_1=greet() 'The Return value of the function is used for variable
'assignment
Кроме того, эту функцию можно также использовать в качестве условий для if и других условных операторов.
for i = 1 to 10
if check_even(i) then
msgbox i & " is Even"
else
msgbox i & " is Odd"
end if
next i
Далее Функции могут иметь модификаторы, такие как By ref и By val для своих аргументов.