Passando argumentos por posição e por nome (Visual Basic)
Quando você chama um procedimento Sub ou Function, você pode passar argumentos pela posição — na ordem em que aparecem na definição do procedimento — ou você pode passá-los pelo nome , sem consideração à posição.
Quando você passa um argumento pelo nome, você especifica o nome declarado do argumento seguido por dois-pontos e um sinal de igualdade (:=), seguido do valor do argumento.Você pode fornecer argumentos nomeados em qualquer ordem.
Por exemplo, o procedimento Sub a seguir utiliza três argumentos:
Sub studentInfo(ByVal name As String,
Optional ByVal age As Short = 0,
Optional ByVal birth As Date = #1/1/2000#)
Debug.WriteLine("Name = " & name &
"; age = " & CStr(age) &
"; birth date = " & CStr(birth))
End Sub
Quando você chamar esse procedimento, você poderá fornecer os argumentos por posição, por nome, ou usando uma mistura dos dois.
Passando argumentos por posição
Você pode chamar o procedimento studentInfo com seus argumentos passados por posição e delimitados por vírgulas, como mostrado no exemplo o seguir:
Call studentInfo("Mary", 19, #9/21/1981#)
Se você omitir um argumento opcional em um lista de argumentos posicionais, você deve manter seu lugar com uma vírgula.O exemplo a seguir chama studentInfo sem o argumento age :
Call studentInfo("Mary", , #9/21/1981#)
Passando argumentos por nome
Como alternativa, você pode chamar studentInfo com os argumentos passados pelo nome, também delimitado por vírgulas, como mostrado no exemplo o seguir:
Call studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
Misturando argumentos por posição e por nome
Você pode fornecer argumentos tanto por posição quanto por nome em uma única chamada de procedimento, conforme mostrado no exemplo a seguir:
Call studentInfo("Mary", birth:=#9/21/1981#)
No exemplo anterior, não é necessária uma vírgula extra para manter o lugar do argumento age omitido, desde que birth seja passado por nome.
Quando você fornecer argumentos por uma mistura de posição e nome, os argumentos posicionais devem todos vir primeiro.Depois que você fornecer um argumento pelo nome, os argumentos restantes devem ser todos por nome.
Fornecendo argumentos opcionais por nome
Passar argumentos por nome é especialmente útil quando você chama um procedimento que tem mais de um argumento opcional.Se você fornecer argumentos pelo nome, não é necessário usar vírgulas consecutivas para indicar argumentos posicionais ausentes.Passar argumentos por nome também facilita manter controle de quais argumentos você está passando e quais você está omitindo.
Restrições no fornecimento de argumentos por nome
Não é possível passar argumentos pelo nome para evitar digitar argumentos necessários.Você pode omitir somente os argumentos opcionais.
Você não pode passar uma matriz de parâmetros por nome.Isso ocorre porque quando você chama o procedimento, você fornece um número indefinido de argumentos separados por vírgula para a matriz de parâmetros, e o compilador não pode associar um único nome a mais de um argumento.
Consulte também
Tarefas
Como: passar argumentos para um procedimento (Visual Basic)
Referência
Conceitos
Parâmetros de procedimentos e argumentos (Visual Basic)
Passando argumentos por valor e por referência (Visual Basic)