Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Especifica os parâmetros que um procedimento espera quando ele é chamado. Vários parâmetros são separados por vírgulas. Veja a seguir a sintaxe de um parâmetro.
Sintaxe
[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]
Partes
attributelist
Opcional. Lista de atributos que se aplicam a esse parâmetro. Você deve colocar a Lista de Atributos entre colchetes angulares ("<" e ">").
Optional
Opcional. Especifica que esse parâmetro não é necessário quando o procedimento é chamado.
ByVal
Opcional. Especifica que o procedimento não pode substituir ou reatribuir o elemento variável subjacente ao argumento correspondente no código de chamada.
ByRef
Opcional. Especifica que o procedimento pode modificar o elemento de variável subjacente no código de chamada da mesma forma que o próprio código de chamada pode.
ParamArray
Opcional. Especifica que o último parâmetro na lista de parâmetros é uma matriz opcional de elementos do tipo de dados especificado. Isso permite que o código de chamada passe um número arbitrário de argumentos para o procedimento.
parametername
Obrigatório Nome da variável local que representa o parâmetro.
parametertype
Obrigatório se Option Strict for On. Tipo de dados da variável local que representa o parâmetro.
defaultvalue
Necessário para Optional parâmetros. Qualquer expressão constante ou constante que seja avaliada como o tipo de dados do parâmetro. Se o tipo for Object, ou uma classe, interface, matriz ou estrutura, o valor padrão só poderá ser Nothing.
Observações
Os parâmetros são cercados por parênteses e separados por vírgulas. Um parâmetro pode ser declarado com qualquer tipo de dados. Se você não especificar parametertype, o padrão Objectserá .
Quando o código de chamada chama o procedimento, ele passa um argumento para cada parâmetro necessário. Para obter mais informações, consulte Diferenças entre parâmetros e argumentos.
O argumento que o código de chamada passa para cada parâmetro é um ponteiro para um elemento subjacente no código de chamada. Se esse elemento não forvariável (uma constante, literal, enumeração ou expressão), é impossível que qualquer código o altere. Se for um elemento variável (uma variável declarada, campo, propriedade, elemento de matriz ou elemento de estrutura), o código de chamada poderá alterá-lo. Para obter mais informações, consulte Diferenças entre argumentos modificáveis e não modificáveis.
Se um elemento de variável for passado ByRef, o procedimento também poderá alterá-lo. Para obter mais informações, consulte Diferenças entre passar um argumento por valor e por referência.
Regras
Parênteses. Se você especificar uma lista de parâmetros, deverá colocá-la entre parênteses. Se não houver parâmetros, você ainda poderá usar parênteses que incluem uma lista vazia. Isso melhora a legibilidade do código esclarecendo que o elemento é um procedimento.
Parâmetros opcionais. Se você usar o
Optionalmodificador em um parâmetro, todos os parâmetros subsequentes na lista também deverão ser opcionais e declarados usando oOptionalmodificador.Cada declaração de parâmetro opcional deve fornecer a
defaultvaluecláusula.Para obter mais informações, consulte Parâmetros opcionais.
Matrizes de parâmetros. Você deve especificar
ByValumParamArrayparâmetro.Você não pode usar ambos
OptionaleParamArrayna mesma lista de parâmetros.Para obter mais informações, consulte Matrizes de Parâmetros.
Mecanismo de passagem. O mecanismo padrão para cada argumento é
ByVal, o que significa que o procedimento não pode alterar o elemento de variável subjacente. No entanto, se o elemento for um tipo de referência, o procedimento poderá modificar o conteúdo ou os membros do objeto subjacente, mesmo que ele não possa substituir ou reatribuir o próprio objeto.Nomes de parâmetro. Se o tipo de dados do parâmetro for uma matriz, siga
parameternameimediatamente por parênteses. Para obter mais informações sobre nomes de parâmetro, consulte Nomes de Elementos Declarados.
Exemplo
O exemplo a seguir mostra um Function procedimento que define dois parâmetros.
Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")