Você está na página 1de 2

Lista de parâmetros (Visual Basic)


Especifica os parâmetros do procedimento quando é chamado. Vários parâmetros são separados por
vírgulas. A seguir está 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 o 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 é possível 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 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
Necessário. Nome da variável local representando o parâmetro.
parametertype
Necessário se Option Strict é On. Tipo de dados da variável local representando o parâmetro.
defaultvalue
Necessário para Optional parâmetros. Qualquer expressão de constante ou constante que é
avaliada como o tipo de dados do parâmetro. Se o tipo é Object, ou uma classe, interface, matriz
ou estrutura, o valor padrão só pode ser Nothing.

Comentários
Parâmetros estão entre 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 é 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 é invariável (uma constante, literal,
enumeração ou expressão), é impossível para qualquer código mudá-lo. Se for um variável
elemento (uma variável declarada, campo, propriedade, elemento de matriz ou elemento de
estrutura), o código de chamada pode alterá-la. Para obter mais informações, consulte diferenças
entre modificáveis e não modificáveis argumentos.
Se um elemento variável é passado ByRef, o procedimento pode alterá-lo também. 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, você deve colocá-la entre
parênteses. Se não houver nenhum parâmetro, você ainda pode usar parênteses delimitando
uma lista vazia. Isso melhora a legibilidade do código ao ver 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 devem ser opcionais e ser declarados usando o
Optional modificador.

Cada declaração de parâmetro opcional deve fornecer a defaultvalue cláusula.

Para obter mais informações, consulte parâmetros opcionais.


 Matrizes de parâmetros. Você deve especificar ByVal para um ParamArray parâmetro.

Você não pode usar ambos Optional e ParamArray na mesma lista de parâmetros.

Para obter mais informações, consulte matrizes de parâmetro.


 Mecanismo de passagem. É o mecanismo padrão para cada argumento ByVal, que
significa que o procedimento não é possível alterar o elemento variável subjacente. No
entanto, se o elemento é um tipo de referência, o procedimento pode modificar o conteúdo
ou os membros do objeto subjacente, mesmo que ele não é possível substituir ou reatribuir o
objeto.
 Nomes de parâmetro. Se o tipo de dados do parâmetro é uma matriz, siga
parametername imediatamente por parênteses. Para obter mais informações sobre nomes
de parâmetro, consulte nomes de elemento declarado.

Exemplo
A exemplo a seguir mostra uma Function procedimento que define dois parâmetros.

VB
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?")