Usuário com melhor resposta
Métodos com multiplos retornos

Pergunta
-
Bom dia pessoal queria criar um métodos que poderia retornar varias tipo de informação, tipo datatable ou dataset ou array, ou string, não expecificando o tipo na hora de criar o método existem essa possibilidade tipo
public static -------- getDados(string strSql)
{
}
esse método pode retornar um dataset, ou um datatale, ou um array ou um objeto tem como?
Respostas
-
véi tu pode utilizar o tipo Genéric ele se torna o q vc quiser no fim das contas tu vai fazer mais ou menos isso aqui:
// Este é um método de retorno Genérico tu que vai determinar // qual o seu retorno no tipo T public static T GetDados<T>(string strSql) { //processa aqui processa ali var objConsulta = TeuMetodoDeConsulta(strSql); object objConvertido = h; T retorno = (T)objConvertido; return retorno; } // voce o chama assim public static void Main() { var retorno = GetDados<DataSet>("tua str"); } // Vc vera q o retorno setado será de um dataset dai vai contar // tua implementação
Atenciosamente:
Edney Batista da Silva - Desenvolvedor .Net, C#, Asp.Net, Java, SQL
CONTATOS:
Hotmail: edney_contato@hotmail.com
Skype: edney.dyn
- Marcado como Resposta Deivite Souza quarta-feira, 24 de agosto de 2011 14:45
Todas as Respostas
-
Deivite,
conforme seu post anterior, http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/3a53ebbb-0592-467a-b036-c4fd2072190c, o que você está buscando seria algo parecido com polimorfismo, exceto pelo fato que o que você quer retornar são tipos completamente distintos.
Para você fazer isso você teria que fazer uma programação de tipo genérico, testando o tipo de parametro pedido e programando todas as suas funções dentro de uma, tornando inviável.
Peterson Roberto Oliveira Seridonio
Desenvolvedor C# Junior
MCTS Windows 7 -
Olá Deivite,
Vc pode fazer isso de duas maneiras:
1) Criar uma classe de contexto, adicionar uma propriedade para cada tipo de dados que vc desejar retornar, criar uma instância dessa classe dentro de seu método e retornar pelo método.
2) Usar parâmetro por refência. (http://msdn.microsoft.com/en-us/library/s6938f28.aspx)
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique -
deivite,
o que tu ta procurando eh generics,
da uma olhada:
- Sugerido como Resposta Guilherme Di Franco quarta-feira, 24 de agosto de 2011 14:46
-
véi tu pode utilizar o tipo Genéric ele se torna o q vc quiser no fim das contas tu vai fazer mais ou menos isso aqui:
// Este é um método de retorno Genérico tu que vai determinar // qual o seu retorno no tipo T public static T GetDados<T>(string strSql) { //processa aqui processa ali var objConsulta = TeuMetodoDeConsulta(strSql); object objConvertido = h; T retorno = (T)objConvertido; return retorno; } // voce o chama assim public static void Main() { var retorno = GetDados<DataSet>("tua str"); } // Vc vera q o retorno setado será de um dataset dai vai contar // tua implementação
Atenciosamente:
Edney Batista da Silva - Desenvolvedor .Net, C#, Asp.Net, Java, SQL
CONTATOS:
Hotmail: edney_contato@hotmail.com
Skype: edney.dyn
- Marcado como Resposta Deivite Souza quarta-feira, 24 de agosto de 2011 14:45
-
-
Funciona sim T é qlqr coisa inclusive um array se eu quiser ^^ por isso de ser GenericType tipo genérico
Atenciosamente:
Edney Batista da Silva - Desenvolvedor .Net, C#, Asp.Net, Java, SQL
CONTATOS:
Hotmail: edney_contato@hotmail.com
Skype: edney.dyn
-
eu sei bem o que eh um genericType por isso q eu sugeri antes de ti pra usa generic, mas lembrando q o q o cara qr fazer é meio impossivel pra faze direto,
mas com generic, por ex tu pode fazer um cast de dataset pra datatable,
mas cara, tu ja tento faze um cast de array pra dataset?
é só pensa um poco, como tu vai transforma um array em data set, em um cast direto??