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 está apresentada a seguir.
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órios. Nome da variável local que representa o parâmetro.
parametertype
Necessário se Option Strict
for On
. Tipo de dados da variável local que representa o parâmetro.
defaultvalue
Necessário para parâmetros Optional
. Qualquer expressão constante ou constante que seja avaliada para 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
.
Comentários
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 invariável (uma constante, literal, enumeração ou expressão), é impossível para qualquer código alterá-lo. Se ele 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, confira Diferenças entre argumentos modificáveis e não modificáveis.
Se um elemento variável for passado ByRef
, o procedimento também poderá alterá-lo. Para obter mais informações, confira 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 modificador
Optional
em um parâmetro, todos os parâmetros subsequentes na lista também deverão ser opcionais e ser declarados usando o modificadorOptional
.Cada declaração de parâmetro opcional deve fornecer a cláusula
defaultvalue
.Para obter mais informações, confira Parâmetros opcionais.
Matrizes de parâmetros. Você deve especificar
ByVal
para um parâmetroParamArray
.Você não pode usar
Optional
eParamArray
na mesma lista de parâmetros.Para obter mais informações, confira Matriz de parâmetros.
Mecanismo para passar argumentos. 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 objeto em si.Nomes de parâmetros. Se o tipo de dados do parâmetro for uma matriz,
parametername
deve estar imediatamente entre parênteses. Para obter mais informações sobre nomes de parâmetro, confira Nomes de Elementos Declarados.
Exemplo
O exemplo a seguir mostra um procedimento Function
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?")