Criando Interfaces genéricas em C#

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (2)  (0)

Veja neste artigo como criar interfaces com tipos genéricos em C#.

Em determinadas situações temos métodos com nomes e ações parecidas, mais que são de tipos diferentes.

Para evitar o copiar e colar (pode ser perigoso, acredite!) de métodos podemos criar uma interface, com métodos genéricos, fazendo com que nossas classes herdem dessa interface, implementando assim esses métodos (e repetindo-os, apenas trocando o tipo).

A Listagem 1 ilustra a criação dessa interface.

Listagem 1. Interface com métodos genéricos

public interface IMetodos where T : new()
{
    string Excluir

(P id); int Inserir(T objModel); List Consultar(T objModel); string Atualizar

(T objModel); }

Definimos um nome qualquer para a interface, onde o T (o T indica que é um tipo de dado do Framework, sem especificar qual) herda da palavra-chave new, indicando que é uma instância da interface. Note que a interface tem como parâmetro um tipo, definido por T.

Na Listagem 2 conferimos uma classe Produtos, herdando de nossa interface.

p>

Listagem 2. Classe herdando a interface criada e aplicando os métodos genéricos

public class ModeloProdutos
{

}

public class Produtos : Conexao.IMetodos
{
    public string Excluir

(P id) { throw new NotImplementedException(); } public int Inserir(ModeloProdutos objModel) { throw new NotImplementedException(); } public List Consultar(ModeloProdutos objModel) { throw new NotImplementedException(); } public string Atualizar

(ModeloProdutos objModel) { throw new NotImplementedException(); } }

Note que antes da classe Produtos criamos outra classe, a ModeloProdutos, que nada mais é do que o tipo que a interface espera, para que a implementação funcione sem erros.

Os métodos foram gerados automaticamente, conforme é ilustrado pela Figura 1.

Gerando os métodos implementados pela interface

Figura 1. Gerando os métodos implementados pela interface

Apenas lembrando que se uma classe herda de uma interface, ele deve, obrigatoriamente, conter os métodos implementados pela interface.

Assim finalizo a quick tip. Muito obrigado a todos! Um abraço, e até o próximo artigo.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?