Sobes.tech
Junior

O que são tipos genéricos em C#?

sobes.tech IA

Resposta da IA

Os tipos genéricos em C# permitem definir classes, estruturas, interfaces, delegados e métodos com parâmetros de tipos. Isto oferece a possibilidade de reutilizar código e aumentar a segurança de tipos.

Vantagens principais:

  • Reutilização de código: Uma única classe ou método pode trabalhar com diferentes tipos de dados sem duplicar lógica.
  • Segurança de tipos: O compilador verifica os tipos durante a compilação, prevenindo erros em tempo de execução relacionados com incompatibilidades de tipos.
  • Desempenho: Para tipos de valor (struct), não há boxing, o que melhora o desempenho em comparação com o uso de object.

Princípios de funcionamento:

  • Parâmetros de tipos: São definidos usando colchetes angulares <T>, onde T é o nome do parâmetro de tipo. Pode usar qualquer nome, mas T é convencional.
  • Criação de instâncias: Ao criar uma instância de um tipo genérico, deve-se especificar um tipo de dado concreto para cada parâmetro de tipo.
  • Restrições (Constraints): Podem impor restrições aos parâmetros de tipos, indicando quais capacidades os tipos devem suportar (por exemplo, implementação de interface, classe base, ausência de construtor, etc.).

Exemplo de uso da classe genérica List<T>:

// Criar uma lista de inteiros
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);

// Criar uma lista de strings
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");