Lista de parâmetros (Visual Basic)
Especifica os parâmetros que um procedimento espera quando é chamado. Vários parâmetros são separados por vírgulas. A sintaxe de um parâmetro é a seguinte.
Sintaxe
[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]
Partes
attributelist
Opcional. Lista de atributos que se aplicam a este 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 variável subjacente no código de chamada da mesma forma que o próprio código de chamada.
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 de acordo com 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 será Object
.
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 for não variável (uma constante, literal, enumeração ou expressão), é impossível para qualquer código alterá-lo. Se for um elemento variável (uma variável declarada, campo, propriedade, elemento de matriz ou elemento de estrutura), o código de chamada pode alterá-lo. Para obter mais informações, consulte Diferenças entre argumentos modificáveis e não modificáveis.
Se um elemento variável for passado ByRef
, o procedimento também pode 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 entre uma lista vazia. Isso melhora a legibilidade do seu código, esclarecendo que o elemento é um procedimento.
Parâmetros opcionais. Se você usar o
Optional
modificador em um parâmetro, todos os parâmetros subsequentes na lista também deverão ser opcionais e declarados usando oOptional
modificador.Todas as declarações de parâmetros opcionais devem fornecer a
defaultvalue
cláusula.Para obter mais informações, consulte Parâmetros opcionais.
Matrizes de parâmetros. Você deve especificar
ByVal
para umParamArray
parâmetro.Não é possível usar ambos
Optional
eParamArray
na 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 variável subjacente. No entanto, se o elemento for um tipo de referência, o procedimento pode modificar o conteúdo ou os membros do objeto subjacente, mesmo que não possa substituir ou reatribuir o próprio objeto.Nomes de parâmetros. Se o tipo de dados do parâmetro for uma matriz, siga
parametername
imediatamente entre parênteses. Para obter mais informações sobre nomes de parâmetros, 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?")