Поделиться через


Процедуры функций (Visual Basic)

Процедура Function — это ряд операторов Visual Basic, заключенных в инструкции Function и End Function. Процедура Function выполняет задачу, а затем возвращает контроль к вызывающему коду. При возврате элемента управления он также возвращает значение вызывающему коду.

Каждый раз, когда процедура вызывается, её операторы выполняются, начиная с первой исполняемой инструкции после инструкции Function и заканчивая первой обнаруженной инструкцией End Function, Exit Function или Return.

Процедуру Function можно определить в модуле, классе или структуре. Это значение по Public умолчанию, что означает, что вы можете вызывать его из любого места в приложении, имеющего доступ к модулю, классу или структуре, в которых он определен.

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

Синтаксис объявления

Синтаксис объявления Function процедуры выглядит следующим образом:

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
    [Statements]
End Function

Модификаторы могут указывать уровень доступа и сведения о перегрузке, переопределении, общем использовании и затенении. Дополнительные сведения см. в описании функции.

Вы объявляете каждый параметр таким же образом, как и для вложенных процедур.

Тип данных

Каждая процедура имеет тип данных так же, как и каждая Function переменная. Этот тип данных указывается As предложением в Function инструкции и определяет тип данных значения, возвращаемого функцией в вызывающий код. Следующие примеры объявлений иллюстрируют это.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

Дополнительные сведения см. в разделе "Части" в Function Statement.

Возвращаемые значения

Function Значение, которое процедура отправляет обратно в вызывающий код, называется возвращаемым значением. Процедура возвращает это значение одним из двух способов:

  • Он использует инструкцию Return для указания возвращаемого значения и немедленно возвращает элемент управления вызывающей программе. Это показано в следующем примере.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement immediately transfers control back
        ' to the calling code and returns the value of Expression.
        Return Expression
    End Function
    
  • Он назначает значение собственному имени функции в одной или нескольких инструкциях процедуры. Элемент управления не возвращается в вызывающую программу, пока не будет выполнена Exit Function или End Function инструкция. Это показано в следующем примере.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement does not transfer control back to the calling code.
        FunctionName = Expression
        ' When control returns to the calling code, Expression is the return value.
    End Function
    

Преимущество присвоения возвращаемого значения имени функции заключается в том, что управление не возвращается из процедуры до тех пор, пока не встретится с оператором Exit Function или End Function. Это позволяет при необходимости назначить предварительное значение и настроить его позже.

Дополнительные сведения о возврате значений см. в инструкции function. Сведения о возврате массивов см. в разделе "Массивы".

Синтаксис вызова

Вы вызываете процедуру Function, указав её имя и аргументы в правой части инструкции присваивания или в выражении. Необходимо указать значения для всех аргументов, которые не являются необязательными, и необходимо заключить список аргументов в скобки. Если аргументы не указаны, можно также опустить круглые скобки.

Синтаксис вызова Function процедуры выглядит следующим образом.

Список аргументов lvalue=functionname[()]

If (( имя[( функции список аргументов)] / 3) <=выражение) Then

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

Иллюстрация объявления и вызова

Function Следующая процедура вычисляет самую длинную сторону или гипотенузу правого треугольника, учитывая значения для других двух сторон.

Function Hypotenuse(side1 As Double, side2 As Double) As Double
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

В следующем примере показан типичный вызов hypotenuse.

Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)

См. также