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 Function
ou 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 orEnd 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)