Curso de C#: Lição 13: Interfaces

Esta lição ensina C # Interfaces. Os nossos objectivos são os seguintes: Entenda os Objetivos de Interfaces. Definir uma interface. Use uma interface. Implementar interface herança

Por | @oficinadanet Programação
Esta lição ensina C # Interfaces. Os nossos objectivos são os seguintes:

  • Entenda os Objetivos de Interfaces.
  • Definir uma interface.
  • Use uma interface.
  • Implementar interface herança.


Uma interface se parece com uma classe, mas não tem aplicação. A única coisa que ele contém são definições de eventos, indexadores, métodos e / ou propriedades. A razão interfaces apenas fornecer definições é porque eles são herdadas por classes e Estruturas, que deve proporcionar uma aplicação para cada membro interface definida.

Então, quais são as interfaces bom para se eles não se aplicar funcionalidade? Eles são grandes para agrupar plug-n-play como arquiteturas onde os componentes podem ser intercambiadas em vão. Uma vez que todos os componentes intercambiáveis implementar a mesma interface, eles podem ser utilizadas sem qualquer programação extra. A interface forças cada componente pública específica para expor os membros que vão ser utilizados em uma determinada maneira.

Porque interfaces devem ser implementadas por classes derivadas e Estruturas, eles definem um contrato. Por exemplo, se foo classe implementa a interface IDisposable, ele está a fazer uma declaração de que ele garante que tem o Descarte () método, que é o único membro da IDisposable interface. Qualquer código que pretenda utilizar class foo maio verificar se foo classe implementa IDisposable. Quando a resposta é verdade, então o código sabe que pode chamar foo.Dispose ().

Listagem 13-1 mostra como a definir uma interface:
interface IMyInterface
{
    void MethodToImplement();
}


Listing 13-1 define uma interface chamada IMyInterface. A convenção é a nomenclatura comum prefixo interface todos os nomes com um capital "I". Esta interface tem um único método chamado MethodToImplement (). Isso poderia ter sido qualquer tipo de método declaração com diferentes tipos de parâmetros e retorno. Eu apenas optou por declarar esse método, sem parâmetros e retornar um tipo de tornar nulo o exemplo fácil. Repare que este método não ter uma execução (instruções entre chavetas - ()), mas, em vez termina com um ponto e vírgula, ";". Isto porque a interface especifica apenas a assinatura dos métodos que herda uma classe ou struct deve implementar.

Listagem 13-2 mostra como essa interface poderia ser utilizado.
 class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }
}


A classe InterfaceImplementer em 13,2 Listing IMyInterface implementa a interface. Indicando que a classe que herda uma interface é a mesma que herda uma classe. Neste caso, é utilizada a seguinte sintaxe:

class InterfaceImplementer : IMyInterface 

Agora que esta classe herda a interface IMyInterface, deve aplicar os seus membros. Fá-lo através da execução das MethodToImplement () método. Repare que este método de execução tem exatamente a mesma assinatura, parâmetros e método de nome, tal como definido no IMyInterface a interface. Qualquer diferença compilador irá causar um erro. Interfaces também pode herdar outras interfaces.

Listagem 13-3 mostra como herdou as interfaces são implementadas.
 using System;

interface IParentInterface
{
    void ParentInterfaceMethod();
}

interface IMyInterface : IParentInterface
{
    void MethodToImplement();
}

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
        iImp.ParentInterfaceMethod();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }

    public void ParentInterfaceMethod()
    {
        Console.WriteLine("ParentInterfaceMethod() called.");
    }
}


O código em 13,3 lista contém duas interfaces: IMyInterface ea interface que herda, IParentInterface. Quando uma interface herda um outro, qualquer aplicação ou struct classe deve implementar cada membro interface em toda a cadeia herança.  Uma vez que a classe em InterfaceImplementer listagem 13-3 herda de IMyInterface, também herda IParentInterface.  Por isso, o InterfaceImplementer classe deve implementar a MethodToImplement () método especificado na IMyInterface interface e os ParentInterfaceMethod () método especificado na IParentInterface interface.

Resumo


Você agora compreender o que são interfaces. Você pode implementar uma interface e usá-lo em uma classe. Interfaces também pode ser herdada por outra relação. Struct ou qualquer classe que herda uma interface também deve executar todos os membros em todo o interface herança cadeia.

Matéria automaticamente traduzida de: http://www.csharp-station.com/Tutorials/Lesson13.aspx

Mais sobre: curso_c_sharp c_sharp interfaces
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo