Método com parametros variáveis

.NET

23/07/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).
Pjava

Pjava

Curtidas 0

Respostas

Renato Groffe

Renato Groffe

23/07/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:

[url]https://www.devmedia.com.br/parametros-nomeados-e-opcionais-em-csharp/25098[/url]

Espero que possa ser útil.

Até mais!
GOSTEI 0
Pjava

Pjava

23/07/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;
}
}
}
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

23/07/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.
GOSTEI 0
POSTAR