DevMedia
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

Criando Interfaces genéricas em C#

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

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

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<T> where T : new()
{
    string Excluir<P>(P id);
    int Inserir(T objModel);
    List<T> Consultar(T objModel);
    string Atualizar<P>(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<ModeloProdutos>
{
    public string Excluir<P>(P id)
    {
        throw new NotImplementedException();
    }

    public int Inserir(ModeloProdutos objModel)
    {
        throw new NotImplementedException();
    }

    public List<ModeloProdutos> Consultar(ModeloProdutos objModel)
    {
        throw new NotImplementedException();
    }

    public string Atualizar<P>(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.



Tecnólogo em Análise de Sistemas, atua na área de Desenvolvimento .NET com aplicações Web a 2 anos, onde trabalha atualmente com a linguagem C# usando a tecnologia ASP.NET, no desenvolvimento em camadas usando o banco de dados SQL [...]

O que você achou deste post?
Conhece a assinatura MVP?

Mais posts