Aviso: domingo (29/05) as 19h faremos uma manutenção preventiva nos servidores. O acesso poderá sofrer instabilidades.
Previsão de retorno domingo (29/05) as 21h

Criando Interfaces genéricas em C#

Veja neste artigo como criar interfaces com tipos genéricos 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

(opcional) Onde podemos melhorar?

Confirmar voto
0
 (2)  (0)
Publicidade

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.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ajude-nos a evoluir: você gostou do post?  (2)  (0)

(opcional) Onde podemos melhorar?

Confirmar voto
Compartilhe:
Ficou com alguma dúvida?