Procedimentos de função (Visual Basic)

Um Function procedimento é uma série de instruções do Visual Basic incluídas pelas Function instruções and End Function . O Function procedimento executa uma tarefa e, em seguida, 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 o procedimento é chamado, suas instruções são executadas, começando com a primeira instrução executável após a Function instrução e terminando com a primeira End Function, Exit Functionou Return instrução encontrada.

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

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

Sintaxe da declaração

A sintaxe para declarar um Function procedimento é a seguinte:

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

Os modificadores podem especificar o nível de acesso e informações sobre sobrecarga, substituição, compartilhamento e sombreamento. Para obter mais informações, consulte Instrução de função.

Você declara cada parâmetro da mesma forma que faz para Sub Procedures.

Tipo de dados

Cada Function procedimento tem um tipo de dados, assim como toda variável. Esse tipo de dados é especificado pela As cláusula na Function instrução e determina o tipo de dados do valor que a função retorna ao código de chamada. As declarações de exemplo a seguir ilustram isso.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

Para obter mais informações, consulte "Parts" em Function Statement.

Retornando valores

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

  • Ele usa a instrução para especificar o valor de retorno e retorna o Return controle imediatamente para o programa de chamada. O exemplo a seguir ilustra isso.

    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 instruções do procedimento. O controle não retorna ao programa de chamada até que uma Exit Function instrução or End Function seja executada. O exemplo a seguir ilustra isso.

    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é encontrar uma Exit Function instrução or End Function . Isso permite atribuir um valor preliminar e ajustá-lo mais tarde, se necessário.

Para obter mais informações sobre como retornar valores, consulte Instrução de função. Para obter informações sobre como retornar matrizes, consulte Matrizes.

Sintaxe de chamada

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

A sintaxe de uma chamada para um Function procedimento é a seguinte.

lvalue = functionname [( argumentlist )]

If ((nome [( da função Lista de )] / 3) <= argumentosexpressão ) Then

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

Ilustração da declaração e do convite à apresentação de propostas

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

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

O exemplo a seguir mostra uma chamada típica para hypotenuse.

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

Consulte também