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


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

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

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

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

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

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

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

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

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

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

Тип данных

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

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

Дополнительные сведения см. в разделе "Части" в инструкции функции.

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

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
    

Преимущество назначения возвращаемого значения имени функции заключается в том, что элемент управления не возвращается из процедуры до тех пор, пока он не столкнется с оператором или End Function операторомExit 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)

См. также