Procedimentos Function (Visual Basic)
Um procedimento Function
é uma série de instruções do Visual Basic entre instruçõ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 o procedimento é chamado, suas instruções são executadas, começando com a primeira instrução executável após a instrução Function
e terminando com a primeira instrução End Function
, Exit Function
ou Return
encontrada.
Você pode definir um procedimento Function
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 procedimento Function
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 procedimento Function
é 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 da função.
Você declara cada parâmetro da mesma maneira que faz para Subprocedimentos.
Tipo de dados
Cada procedimento Function
tem um tipo de dados, assim como todas as variáveis. Esse tipo de dados é especificado pela cláusula As
na instrução Function
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 "Partes" em Instrução Function.
Retornando valores
O valor que um procedimento Function
envia de volta para o código de chamada é chamado de valor retornado. O procedimento retorna esse valor de uma das duas maneiras:
Ele usa a instrução
Return
para especificar o valor retornado e retorna o controle imediatamente para o programa de chamada. O exemplo a seguir ilustra essa situação.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 instrução
Exit Function
ouEnd Function
seja executada. O exemplo a seguir ilustra essa situação.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 retornado ao nome da função é que o controle não retorna do procedimento até encontrar uma instrução Exit Function
ou End Function
. Isso permite atribuir um valor preliminar e ajustá-lo posteriormente, se necessário.
Para obter mais informações sobre como retornar valores, consulte a Instrução Function. Para obter informações sobre retorno de matrizes, consulte Matrizes.
Sintaxe de chamada
Você invoca um procedimento Function
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 deve colocar a lista de argumentos entre parênteses. Se não houver argumentos você pode, opcionalmente, omitir os parênteses.
A sintaxe para declarar um procedimento Function
é a seguinte.
lvalue =
nome da função [(
lista de argumentos )]
If ((
nome da função [(
lista de argumentos )] / 3) <=
expressão ) Then
Quando você chama um procedimento Function
, não precisa usar seu valor retornado. Se você não fizer isso, todas as ações da função serão executadas, mas o valor retornado será ignorado. MsgBox geralmente é chamado dessa maneira.
Ilustração de declaração e chamada
O procedimento Function
a seguir calcula o lado mais longo, ou hipotenusa, de um triângulo direito, considerando os valores dos 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)