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


Процедуры Function (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 (Visual Basic).

Параметры объявляются так же, как для Подпрограммы (Visual Basic).

Тип данных

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

Function yesterday() As Date
End Function

Function findSqrt(ByVal radicand As Single) As Single
End Function

Дополнительные сведения об ограничениях содержатся в подразделе "Компоненты" раздела Оператор Function (Visual Basic).

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

Значение процедура 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 (Visual Basic). Дополнительные сведения о возврат массивов см. в разделе Массивы в Visual Basic.

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

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

Для вызова процедуры Function используется следующий синтаксис:

значение =functionname[(argumentlist)]

If ((functionname[(argumentlist)] / 3) <=выражение) Then

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

Пример объявления и вызова

Приведенная ниже процедура Function вычисляет длину самой длинной стороны прямоугольного треугольника (гипотенузы) по значениям двух других сторон.

Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single 
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

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

Dim testLength, testHypotenuse As Single
testHypotenuse = hypotenuse(testLength, 10.7)

См. также

Задачи

Практическое руководство. Создание процедуры, возвращающей значение (Visual Basic)

Практическое руководство. Возврат значения из процедуры (Visual Basic)

Практическое руководство. Вызов процедуры, возвращающей значение (Visual Basic)

Ссылки

Оператор Function (Visual Basic)

Основные понятия

Процедуры в Visual Basic

Подпрограммы (Visual Basic)

Процедуры свойств (Visual Basic)

Процедуры операторов (Visual Basic)

Параметры и аргументы процедуры (Visual Basic)