Parâmetros e argumentos de procedimento (Visual Basic)Procedure Parameters and Arguments (Visual Basic)

Na maioria dos casos, um procedimento precisa de algumas informações sobre as circunstâncias em que ele foi chamado.In most cases, a procedure needs some information about the circumstances in which it has been called. Um procedimento que executa tarefas repetidas ou compartilhadas usa informações diferentes para cada chamada.A procedure that performs repeated or shared tasks uses different information for each call. Essas informações consistem em variáveis, constantes e expressões que você passa para o procedimento ao chamá-lo.This information consists of variables, constants, and expressions that you pass to the procedure when you call it.

Um parâmetro representa um valor que o procedimento espera que você forneça ao chamá-lo.A parameter represents a value that the procedure expects you to supply when you call it. A declaração do procedimento define seus parâmetros.The procedure's declaration defines its parameters.

Você pode definir um procedimento sem parâmetros, um parâmetro ou mais de um.You can define a procedure with no parameters, one parameter, or more than one. A parte da definição do procedimento que especifica os parâmetros é chamada de lista de parâmetros.The part of the procedure definition that specifies the parameters is called the parameter list.

Um argumento representa o valor que você fornece a um parâmetro de procedimento ao chamar o procedimento.An argument represents the value you supply to a procedure parameter when you call the procedure. O código de chamada fornece os argumentos ao chamar o procedimento.The calling code supplies the arguments when it calls the procedure. A parte da chamada de procedimento que especifica os argumentos é chamada de lista de argumentos.The part of the procedure call that specifies the arguments is called the argument list.

A ilustração a seguir mostra o código que chama o procedimento safeSquareRoot de dois locais diferentes.The following illustration shows code calling the procedure safeSquareRoot from two different places. A primeira chamada passa o valor da variável x (4,0) para o parâmetro number e o valor de retorno em root (2,0) é atribuído à variável y .The first call passes the value of the variable x (4.0) to the parameter number, and the return value in root (2.0) is assigned to the variable y. A segunda chamada passa o valor literal 9,0 para number e atribui o valor de retorno (3,0) à variável z .The second call passes the literal value 9.0 to number, and assigns the return value (3.0) to variable z.

Diagrama que mostra a passagem de um argumento para um parâmetro

Para obter mais informações, consulte diferenças entre parâmetros e argumentos.For more information, see Differences Between Parameters and Arguments.

Tipo de dados de parâmetroParameter Data Type

Você define um tipo de dados para um parâmetro usando a As cláusula em sua declaração.You define a data type for a parameter by using the As clause in its declaration. Por exemplo, a função a seguir aceita uma cadeia de caracteres e um inteiro.For example, the following function accepts a string and an integer.

Function appointment(ByVal day As String, ByVal hour As Integer) As String
    ' Insert code to return any appointment for the given day and time.
    Return "appointment"
End Function

Se a opção de verificação de tipo (instrução Option Strict) for Off, a As cláusula for opcional, exceto que, se qualquer parâmetro usar, todos os parâmetros deverão usá-la.If the type checking switch (Option Strict Statement) is Off, the As clause is optional, except that if any one parameter uses it, all parameters must use it. Se a verificação de tipo for On , a As cláusula será necessária para todos os parâmetros de procedimento.If type checking is On, the As clause is required for all procedure parameters.

Se o código de chamada espera fornecer um argumento com um tipo de dados diferente daquele de seu parâmetro correspondente, como Byte em um String parâmetro, ele deve executar um dos seguintes procedimentos:If the calling code expects to supply an argument with a data type different from that of its corresponding parameter, such as Byte to a String parameter, it must do one of the following:

  • Forneça somente argumentos com tipos de dados que ampliam para o tipo de dados de parâmetro;Supply only arguments with data types that widen to the parameter data type;

  • Defina Option Strict Off para permitir conversões de estreitamento implícitas; ouSet Option Strict Off to allow implicit narrowing conversions; or

  • Use uma palavra-chave de conversão para converter explicitamente o tipo de dados.Use a conversion keyword to explicitly convert the data type.

Parâmetros de tipoType Parameters

Um procedimento genérico também define um ou mais parâmetros de tipo , além de seus parâmetros normais.A generic procedure also defines one or more type parameters in addition to its normal parameters. Um procedimento genérico permite que o código de chamada passe tipos de dados diferentes cada vez que chama o procedimento, para que possa personalizar os tipos de dados para os requisitos de cada chamada individual.A generic procedure allows the calling code to pass different data types each time it calls the procedure, so it can tailor the data types to the requirements of each individual call. Consulte procedimentos genéricos em Visual Basic.See Generic Procedures in Visual Basic.

Consulte tambémSee also