iF ~ 0 Denunciar post Postado Junho 4, 2008 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
quintelab 91 Denunciar post Postado Junho 4, 2008 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
sublyer 0 Denunciar post Postado Junho 4, 2008 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
iF ~ 0 Denunciar post Postado Junho 5, 2008 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
sublyer 0 Denunciar post Postado Junho 6, 2008 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
Juliano.net 2 Denunciar post Postado Junho 6, 2008 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
sublyer 0 Denunciar post Postado Junho 6, 2008 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
Juliano.net 2 Denunciar post Postado Junho 6, 2008 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