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 o Optional 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 um ParamArray parâmetro.

    Não é possível 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 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?")

Consulte também