Array
(
)

Método com parametros variáveis

Pjava
   - 23 jul 2012

Pessoal, boa tarde. Eu tenho alguns Web Forms com Vários TextBox e DropDownlist, mas em quantidades diferentes, e preciso escrever métodos para limpar o conteúdo dos mesmos. Como eu tenho uma classe para métodos semelhantes, gostaria de saber se há como fazer um método(único), cujos argumentos eu passo do tipo TextBox ou DropDownList, porem em quantidades diferentes. Mas apenas um método, tipo assim:
MeuMetod(varParametros);
Aí eu chamo:
MeuMetodo(TextBox1,TextBox2,DropDownList1);
MeuMetodo(TextBox1,TextBox2,TextBox3,DropDownList1,DropDownList2,TextBox4);
MeuMetodo(TextBox1,TextBox2,TextBox3);
Tem como? É possivel?
Atenção: Não estou falndo de OverLoad, pois dessa forma, teria que escrever tantos quantos possíveis. Caso não seja possível(acho que não) ter TextBox e DropDown, posso criar dois, um pra cada, mas aceites parâmetros variáveis(em quantidade e não tipo).

Renato_groffe
|
MVP
    23 jul 2012

PJava,

Possível é. Você usaria os controles como parâmetros, assumindo null por default. Apenas cheque depois se cada parâmetro está preenchido, a fim de evitar erros em tempo de execução.

Faz alguns dias escrevi inclusive um artigo aqui para o Portal sobre o uso de parâmetros opcionais/nomeados.

Segue o link:

http://www.devmedia.com.br/parametros-nomeados-e-opcionais-em-csharp/25098

Espero que possa ser útil.

Até mais!

0
|
0

Pjava
   - 23 jul 2012

Fiz assim e resolveu:

public void LimpaTudo(params Object[] controls)
{
foreach (var control in controls)
{
if (control is TextBox)
((TextBox)control).Text = String.Empty;
else if (control is DropDownList)
{
((DropDownList)control).SelectedIndex = -1;
}
}
}

0
|
0

Joel Rodrigues
   - 24 jul 2012

Valeu, PJava, por compartilhar a solução.
Agradecemos também a contribuição do amigo Renato e aproveito para parabenizá-lo pelo artigo citado.
Estou fechando este tópico.

0
|
0