Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

argumentos da uma classe genérica

Tenho uma dúvida. No exemplo dado, como classe genérica, Todos os métodos tinham como parâmetros o tipo "int", más, e se no meio desses métodos tenho um ou mais métodos que tem parâmetros tipo "string", por exemplo ? Como faço para usar esses métodos ?

3 respostas

Oi Fernando, tudo bem?

e se no meio desses métodos tenho um ou mais métodos que tem parâmetros tipo "string", por exemplo ? Como faço para usar esses métodos ?

Não tem problema. Você pode misturar o tipo genérico T com tipos definidos, como o string que você citou. Por exemplo:

public void Adicionar(T item)
{
    ....
}

Você poderia ter um método Adicionar com um parâmetro novo, do tipo string. Imagine que um método para adicionar valores em uma classe Dicionario, que representa um dicionário de dados, onde:

  • o parâmetro chave é sempre um código do tipo string
  • o parâmetro valor pode ser de qualquer tipo (int, string, object, etc.)
public class Dicionario<T>
{
    public void Adicionar(string chave, T valor)
    {
        ....
    }
}

Então você poderia declarar tipos diferentes de dicionário:

Dicionario<string> estados = new Dicionario<string>();
estados.Adicionar("SC", "Santa Catarina");
estados.Adicionar("SP", "São Paulo");
estados.Adicionar("SE", "Sergipe");

Dicionario<decimal> tarifas = new Dicionario<decimal>();
tarifas.Adicionar("metrô", 4.50m);
tarifas.Adicionar("ônibus", 4.00m);
tarifas.Adicionar("trem", 3.00m);

Dicionario<bool> configuracoes = new Dicionario<bool>();
configuracoes.Adicionar("freio ABS", true);
configuracoes.Adicionar("ar condicionado", false);
configuracoes.Adicionar("vidro elétrico", true);
solução!

Show de bola. Então todas as vezes que usar o meu método posso informar o tipo de parâmetro que usarei para aquela situação. Aproveitei e fiz uma sobrecarga no método Adicionar e ficou ótimo. Valeu!!!

Legal Fernando, fico feliz por ter ajudado! Obrigado por participar do fórum

Um abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software