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 modificador Optional.

    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âmetro ParamArray.

    Você não pode usar Optional e ParamArray 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?")

Confira também