Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

iF ~

C# - parâmetros opcionais ...

Recommended Posts

olá \o

 

Então galera alguém sabe como faço para dizer que um parâmetro é opcional em C# ?

 

Em VB.NET tu faz colocando a palavra reservada "Optional". C# não tem isso que eu saiba.

Eu quero fugir de utilizar "overloads" de métodos.

 

Dei uma lida na classe "ParamArrayAttributes", mas não entendi como utiliza-lá.

 

To quebrando minha cuca nisso....

Compartilhar este post


Link para o post
Compartilhar em outros sites

No C# eu não encontrei esta opção, acredito que não exista, o que pode ser feito é criar duas funções com o mesmo nome e mesmo código só que com parâmetros distintos:

public void SuaFuncao(string Parametro1) {

		}
E:

public void SuaFuncao(string Parametro1, string Parametro2) {

		}

E o melhor é que não é gambir, é POO.

Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá você pode utilizar um array de objetos como parâmetros, mas não é muito recomendável ( pois é POG - Programação orientada a gambiarra).

 

Utilize a sobrecarga de método que auxilia muito.

 

Flwww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentando fugir da sobrecarga. Na verdade não estou levando em cogitação a sobrecarga, pois, meu método teria que receber uma quantidade de parâmetros que iria de 1 a infinito. Utilizei:

 

public void MeuMétodo(string p1, params string[] p2)

Porém, todos os parâmetros "p2" tem que ser do tipo string, ou seja, só podem ser de um tipo. O que eu posso fazer é reescrever MeuMétodo várias vezes para cada vez ele receber um array de parametros de tipo diferente. Mas acho que isso tb é POG. Alguém tem idéia do que e posso fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode passar um array de object

 

public void MeuMetodo(string p1, object[] p2)

Flwww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O C# não possui suporte a parâmetros opcionais. E o uso de arrays como parâmetros não é bem uma "gambiarra".

 

Imagine se tivesse que passar 10, 12 ou 15 string (podendo variar a quantidade) para um método ou função? Criaria uma sobrecarga para cada possibilidade? Não. Tanto que nas aplicações console o void main recebe como parâmetro um array de argumentos.

 

Então, dependendo do requisito você pode usar sobrecarga de métodos/funções ou arrays como parâmetros.

 

 

Aproveite e conheça meu blog - Muitas dicas, indicações de sites e até vagas de trabalho - www.julianonunes.com :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu geralmente utilizo Generics para este tipo de operação, pois acho que auxilia muito, vai do gosto de cada um. :-D

 

 

Flww, grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sublyer, o que disse não é pela questão do tipo de dados, mas sim pela variação na quantidade de parâmetros.

 

Se você pode ter 1, 2, 3 ou até 25 parâmetros, você pode usar um array genérico. Mas ainda passaria um array como parâmetro.

 

Sacou o que eu quis dizer? :D

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.