Dev (Back & Front)ARTIGO

Restrições de tipos genéricos em C#

O autor apresenta neste artigo, um conjunto de restrições de tipos genéricos na linguagem C# e fala sobre o potencial que elas têm no desenvolvimento de um projeto.

Em diversas situações no desenvolvimento de software, criamos classes genéricas para nos auxiliar, mas às vezes temos que restringir que essa mesma classe genérica seja implementada com determinadas condições como, por exemplo:

  • Classe genérica somente poderá ter uma instância quando o tipo genérico seja uma outra classe.
Restrição quando o T for uma classe
Exemplo de instância da classe.
  • Classe genérica, somente poderá ter uma instância quando o tipo genérico for uma struct.
Restrição quando o T for uma struct
Exemplo de instância de classe.
  • Classe genérica, somente poderá ter uma instância, quando o tipo genérico seja uma classe, que essa classe tenha herança de uma Interface ou classe base.
Restrição quando a classe genérica, estiver com a herança de IDisposable
Exemplo de instância de classe
Classe com herança

Podemos fazer restrições múltiplas, desta forma:

Restrições múltiplas
Exemplo de instância de classe

  • Classe genérica, somente poderá ter uma instância, quando o tipo genérico seja uma classe, e que tenha a obrigatoriedade de um construtor vazio, quando já se tem um construtor não vazio.
Restrição obrigando, que a classe genérica tenha um construtor vazio
Exemplo de instância
Classe com construtor vazio

Esses tipos de restrições podem ajudar e muito em seu desenvolvimento, onde de fato, você pode marcar todas as suas classes, interfaces e etc, como elas poderão ser instanciadas.

​Atu​a na área de desenvolvimento há mais de 15 anos. Atualmente, é Arquiteto de Software no Grupo Viceri. Tem certificações Microsoft e palestra em alguns eventos no Brasil, além de atuar em comunidades técnicas em Jundiaí para compartilhar conhecimento organizando eventos e Meetups.

Ver perfil