Procedimentos de função
Um Functionprocedimento é uma série deVisual Basic declarações anexado pelo Functione por End Functiondeclarações.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 passadas a ele pelo código de chamada.
Sintaxe da Declaração
A sintaxe para declarar um Function procedimento é como se segue:
[modificadores] Function returntype nomedafunção [(parameterlist)] As
' Statements of the Function procedure.
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.
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 Function envia de volta ao código de chamada é chamado seu valor de retorno .O procedimento retorna o valor de uma destas duas maneiras:
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 nomedafunção[(parameterlist)] As returntype
' The following statement does not transfer control back to the calling code.
nomedafunção = expressão de
' When control returns to the calling code, expression is the return value.
End Function
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 nomedafunção[(parameterlist)] As returntype
' The following statement immediately transfers control back to the calling code and returns the value of expression.
Returnexpression
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, consulte " Valor de Retorno" em Instrução Function (Visual Basic).
Retornando matrizes
Se o procedimento Function retorna um tipo de dados de matriz, você não pode acessar os elementos individuais da matriz dentro da função.Se você tentar fazer isso, o compilador interpretará como uma chamada recursiva para o procedimento.O exemplo a seguir ilustra isto:
Function allOnes(ByVal n As Integer) As Integer()
For i As Integer = 1 To n - 1
' The following statement generates a COMPILER ERROR.
allOnes(i) = 1
Next i
' The following statement generates a COMPILER ERROR.
Return allOnes()
End Function
No exemplo anterior, o compilador interpreta a tentativa de atribuição allOnes(i) = 1 como uma chamada para allOnes no lado esquerdo de uma instrução de atribuição.Ele interpreta a tentativa de Return allOnes() como uma chamada com nenhum argumento.As duas instruções geram erros de compilador.
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 é o seguinte:
lvalue = nomedafunção[(argumentlist)]
If ((nomedafunção[(argumentlist)] / 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 da função são executadas, mas o valor retornado será ignorado.MsgBox é freqüentemente chamada 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)
Funções de tempo de execução do Visual Basic
O tempo de execução Visual Basic fornece muitas funções, localizadas no namespace Microsoft.VisualBasic.Isso inclui funções comuns como Função de bipe, Função MsgBox (Visual Basic) e Função StrComp (Visual Basic).Você chama essas funções da mesma maneira como você chama seus próprios procedimentos Function.
Consulte também
Tarefas
Como: Criar um procedimento que retorna um valor
Como: Retornar um valor de um procedimento
Como: Chamar um procedimento que retorna um valor
Conceitos
Parâmetros do procedimento e argumentos