No post anterior abordei a passagem de parâmetros por referência. Hoje vou falar dos parâmetros params. Um parâmetro do tipo params permite que passe uma quantidade variável de parâmetros na chamado do método. É diferente de ter um método que recebe um array como parâmetro. Neste caso, ao chamar o método você terá que passar um array, e no caso do params, ao chamar o método, você passará quantos valores forem necessários, separados por vírgula. Veja a diferença.
Passagem de parâmetros usando um array:
int[] myarray = new int[3] { 10, 11, 12 };
ChamaMetodoArray(myarray);
Passagem de parâmetros usando params:
ChamaMetodoParams(10,11,12);
Usando params, a chamado do método é relativamente mais simples. Mas é importante ressaltar que o parâmetro params é o último argumento do método. Abaixo temos um exemplo, extraído da documentação do MSDN, para facilitar o entendimento.
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
Console.WriteLine(list[i]);
Console.WriteLine();
}
public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
Console.WriteLine(list[i]);
Console.WriteLine();
}
public static void Main()
{
UseParams(1, 2, 3);
UseParams2(1, 'a', "test");
int[] myarray = new int[3] { 10, 11, 12 };
UseParams(myarray);
UseParams2();
Console.ReadLine();
}
Repare que ao chamar o método com argumentos do tipo params pode-se passar uma lista de parâmetros separados por virgula (UseParams(1, 2, 3);) ou um array (UseParams(myarray);). O parâmetro params também aceita que não passe argumento algum (UseParams2();).
0 comentários:
Postar um comentário