Usuário com melhor resposta
Simples duvida sobre Generics

Pergunta
-
Fala Pessoal, tranquilo ?
Uma duvida simples sobre generics, estou tentanto criar um método que recebe uma lista generica mas eu eu nao sei o tipo da lista, entao tento usar o T, deste jeit : List<T> obj porém o compilador nao reconhece o T , como faço para usar a lista deste jeit ? precisa de algum namespace além do system.collections .generics ?
Abraços.
Respostas
-
X, bom dia. Entendi, veja o exemplo:
//declaração static void Swap<T>(T obj1, T obj2) { } //chamada ObjetodeNegocio a = new ObjetodeNegocio(); ObjetodeNegocio b = new ObjetodeNegocio(); Swap<ObjetodeNegocio>(a, b);
Atenciosamente,
Onofre A. Juvencio Junior
(Se a achou útil o post, por favor, marque-o como resposta)
- Marcado como Resposta x.programmer sexta-feira, 23 de dezembro de 2011 12:43
Todas as Respostas
-
X, bom dia. Segue exemplo simples:
public Dictionary<string> Teste(bool blnTeste) { Dictionary<string> lst = new Dictionary<string>(); lst.Add("Teste1"); lst.Add("Teste1"); return lst; }
Atenciosamente,Onofre A. Juvencio Junior(Se a achou útil o post, por favor, marque-o como resposta) -
Creio que você nao entendeu a pergunta rs.
Eu sei usar generics, mas o tipo da lista é dinamico, ou seja no lugar do string do Dictionary que vc criou teria que ser uma variavel,
para isso existe o List<T> , este T assume qualquer tipo que vc passar, posso passar uma hora string e outra hora int sem problemas.
O problema é que o sistema nao esta reconhecendo o T queria saber como faço para poder usar o T.
-
-
Olá amigo,
Já tentou usar Interfaces? Poderia dar um pouco de trabalho mas pense no seguinte: Faça uma lista do tipo da interfaces, neste caso tu não teria problema ao pegar essa lista. Isso se justifica se os objetos forem teus (objetos de negócio).
Agora se daqui a pouco a List for de Integer, string, etc tente usar List<object>.
Abraços !
-
Fala Lord,
Os objetos sao de negocio sim, sao 8 classes, existe um factory que, ao passar uma classe no parametro de um método, este parametro de criar uma lista do tipo informado, entende ? Usando object teria que efetuar boxing e unboxng manual certo ?
teria de ser algo neste sentido ?
public void Validar(string fileType, List<T> list)
Esta é a assinatura do método, quando chamar este método vou passar uma lista de algum tipo que eu nao, o T assume o tipo passado, porém esse T nao ta sendo reconhecido pelo sistema.
-
X, bom dia. Entendi, veja o exemplo:
//declaração static void Swap<T>(T obj1, T obj2) { } //chamada ObjetodeNegocio a = new ObjetodeNegocio(); ObjetodeNegocio b = new ObjetodeNegocio(); Swap<ObjetodeNegocio>(a, b);
Atenciosamente,
Onofre A. Juvencio Junior
(Se a achou útil o post, por favor, marque-o como resposta)
- Marcado como Resposta x.programmer sexta-feira, 23 de dezembro de 2011 12:43
-