1
resposta

Objetivo dos tipos genéricos

Boa noite!, em que outros contextos eu posso utilizar implementações de classes genéricas que tragam grandes benefícios?,

1 resposta

Olá Winicius, tudo bem?

A forma que mais tenho utilizado as Classes Genéricas é para adicionar itens de vários tipos, utilizando a mesma classe.

Criei uma classe simples, para demonstrar, veja:

public class ClasseGenerica<T>
        {
            // define um Array do tipo Generic com tamanho 5
            T[] obj = new T[5];
            int contador = 0;

            // adiciona itens ao tipo genérico
            public void Adicionar(T item)
            {
                //verifica o tamanho
                if (contador + 1 < 6)
                {
                    obj[contador] = item;
                }
                contador++;
            }

            //indexador para a iteração da instrução foreach
            public T this[int i]
            {
                get { return obj[i]; }
                set { obj[i] = value; }
            }
        }

No main, conseguimos adicionar item do tipo string, int ou qualquer outro. Veja:

 static void Main(string[] args)
        {           
            ClasseGenerica<string> Obj = new ClasseGenerica<string>();

            //adiciona string 
            Obj.Adicionar("Generico");
            Obj.Adicionar("Generico");
            Obj.Adicionar("Generico");    
            Obj.Adicionar("Generico");
            Obj.Adicionar("Generico");

            Console.WriteLine("Classe ClasseGenerica<T> de objetos string");

            //Exibe os valores
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(Obj[i]);  
            }
            Console.ReadLine();
        }
static void Main(string[] args)
        {   
            ClasseGenerica<int> Obj = new ClasseGenerica<int>();

            //adiciona inteiros 
            Obj.Adicionar(10);
            Obj.Adicionar(20);
            Obj.Adicionar(30);
            Obj.Adicionar(40);
            Obj.Adicionar(50);

            Console.WriteLine("Classe ClasseGenerica<T> de objetos int");

            //Exibe os valores
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(Obj[i]);  
            }
            Console.ReadLine();
        }

Espero ter ajudado. Bons estudos!