Compartilhar via


Lista de parâmetros (Visual Basic)

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 Optional modificador em um parâmetro, todos os parâmetros subsequentes na lista também deverão ser opcionais e 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 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â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 parametername imediatamente 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?")

Consulte também