Поиск…


Введение в процедуры

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

Функция с примерами

Как указано выше, функции представляют собой более мелкие процедуры, содержащие небольшие фрагменты кода, которые могут повторяться внутри процедуры.

Функции используются для уменьшения избыточности кода.

Подобно процедуре, функция может быть объявлена ​​с или без списка аргументов.

Функция объявляется как возвращаемый тип, так как все функции возвращают значение. Имя и возвращаемая переменная функции являются одинаковыми.

  1. Функция с параметром:

     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
    
  2. Функция без параметра:

     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 для своих аргументов.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow