Procedimentos de função (Visual Basic)

Um procedimento Function é uma série de declarações Visual Basic embutidas pelas declarações Function e End Function. O procedimento Function executa uma tarefa e retorna o controle para o código de chamada. Quando ele retorna o controle, ele também retorna um valor para o código de chamada.

Cada vez que é feita uma chamada de procedimento, suas declarações são executadas, começando pela primeira declaração executável depois da declaração Function e finalizando com a primeira declaração End Function, Exit Function, ou Return encontrada.

Você pode definir um procedimento Function em um módulo, classe ou estrutura. Por padrão, ele é Public, o que significa que você pode chamá-lo de qualquer lugar no seu aplicativo que tenha acesso ao módulo, classe ou estrutura na qual você o definiu.

Um procedimento Function pode receber argumentos, como constantes, variáveis ou expressões, que são passados a ele pelo código de chamada.

Sintaxe da Declaração

A sintaxe para declarar um procedimento Function é a seguinte:

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

Os modificadores podem especificar o nível de acesso e as informações sobre sobrecarregamento, substituições, compartilhamento e sombreamento. Para obter mais informações, consulte Instrução Function (Visual Basic).

Você declara cada parâmetro da mesma maneira que faria para Subprocedimentos (Visual Basic).

Tipo de dados

Cada procedimento Function tem um tipo de dados, exatamente como cada variável. Este tipo de dados é especificado pela cláusula As na instrução Function, e ele determina o tipo de dados do valor que a função retorna para o código de chamada. Os seguintes exemplos de declarações ilustram isto.

Function yesterday() As Date
End Function

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

Para mais informações, veja "Partes" em Instrução Function (Visual Basic)

Retornando valores

O valor que um procedimento de Function envia de volta para o código de chamada é chamado seu valor de retorno. O procedimento retorna o valor de uma destas duas maneiras:

  • Ele utiliza a declaração Return para especificar o valor de retorno e retorna o controle imediatamente ao programa de chamada. O exemplo a seguir ilustra isto:

    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
    
  • Ele atribui um valor ao seu próprio nome de função em uma ou mais declarações do procedimento. O controle não retorna ao programa de chamada até que uma declaração Exit Function ou End Function seja executada. O exemplo a seguir ilustra isto:

    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
    

A vantagem de atribuir o valor de retorno ao nome da função é que o controle não retorna do procedimento até que ele encontre uma declaração Exit Function ou End Function . Isso permite que você atribua um valor preliminar e ajuste-o mais tarde, se necessário.

Para obter mais informações sobre retornar valores, consulte Instrução Function (Visual Basic). Para obter informações sobre retornar matrizes, consulte Matrizes no Visual Basic.

Sintaxe de Chamada

Você chama um procedimento Function incluindo seu nome e argumentos tanto no lado direito de uma instrução de atribuição quanto em uma expressão. Você deve fornecer valores para todos os argumentos que não são opcionais, e você precisa cercar a lista de argumentos entre parênteses. Se nenhum argumento é fornecido, você pode, opcionalmente, omitir os parênteses.

A sintaxe para chamar um procedimento Function é a seguinte:

lvalue=nomedafunção[(lista)]

If ((((nomedafunção[(lista)] / 3) <=expressão) Then

Quando você chama um procedimento Function, não é necessário usar seu valor de retorno. Se você não fizer isso, todas as ações de função são executadas, mas o valor de retorno é ignorado. MsgBox é frequentemente chamado dessa maneira.

Ilustração de Declaração e Chamada

O procedimento Function a seguir calcula o maior lado, ou hipotenusa, de um triângulo retângulo, dados os valores dos outros dois lados.

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

O exemplo seguinte mostra uma chamada típica para hypotenuse.

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

Consulte também

Tarefas

Como criar um procedimento que retorne um valor (Visual Basic)

Como retornar um valor de um procedimento (Visual Basic)

Como chamar um procedimento que retorna um valor (Visual Basic)

Referência

Instrução Function (Visual Basic)

Conceitos

Procedimentos no Visual Basic

Subprocedimentos (Visual Basic)

Procedimentos de propriedade (Visual Basic)

Procedimentos do operador (Visual Basic)

Parâmetros e argumentos de procedimento (Visual Basic)