Compartilhar via


interface (referência de C#)

Uma interface contém apenas as assinaturas de métodos, Propriedades, eventos de ou indexadores.Uma classe ou struct que implementa a interface deve implementar os membros da interface especificados na definição de interface.No exemplo a seguir, a classe ImplementationClass deve implementar um método chamado SampleMethod que não tem parâmetros e retorna void.

Para mais informações e exemplos, consulte Interfaces (guia de programação do C#).

Exemplo

interface ISampleInterface
{
    void SampleMethod();
}

class ImplementationClass : ISampleInterface
{
    // Explicit interface member implementation: 
    void ISampleInterface.SampleMethod()
    {
        // Method implementation.
    }

    static void Main()
    {
        // Declare an interface instance.
        ISampleInterface obj = new ImplementationClass();

        // Call the member.
        obj.SampleMethod();
    }
}

Uma interface pode ser um membro de um namespace ou uma classe e pode conter assinaturas dos seguintes membros:

Uma interface pode herdar de uma ou mais interfaces base.

Quando uma lista do tipo base contém uma classe base e interfaces, a classe base deve vir primeira na lista.

Uma classe que implementa uma interface pode explicitamente implementar membros de interface.Um membro implementado explicitamente não pode ser acessado por meio de uma instância de classe, mas somente através de uma instância da interface.

Para obter mais detalhes e exemplos de código na implementação de interface explícita, consulte Implementação de Interface explícita (guia de programação do C#).

O exemplo a seguir demonstra a implementação de interface.Neste exemplo, a interface contém a declaração de propriedade e a classe contém a implementação.Qualquer instância de uma classe que implementa IPoint tem propriedades inteiro x e y.

interface IPoint
{
   // Property signatures:
   int x
   {
      get;
      set;
   }

   int y
   {
      get;
      set;
   }
}

class Point : IPoint
{
   // Fields:
   private int _x;
   private int _y;

   // Constructor:
   public Point(int x, int y)
   {
      _x = x;
      _y = y;
   }

   // Property implementation:
   public int x
   {
      get
      {
         return _x;
      }

      set
      {
         _x = value;
      }
   }

   public int y
   {
      get
      {
         return _y;
      }
      set
      {
         _y = value;
      }
   }
}

class MainClass
{
   static void PrintPoint(IPoint p)
   {
      Console.WriteLine("x={0}, y={1}", p.x, p.y);
   }

   static void Main()
   {
      Point p = new Point(2, 3);
      Console.Write("My Point: ");
      PrintPoint(p);
   }
}
// Output: My Point: x=2, y=3

Especificação de linguagem C#

Para obter mais informações, consulte Especificação de linguagem do C# A especificação da linguagem é a fonte definitiva para a sintaxe e o uso da linguagem C#.

Consulte também

Referência

Palavras-chave C#

Tipos de referência (referência de C#)

Interfaces (guia de programação do C#)

Usando as propriedades (guia de programação do C#)

Usando os indexadores (guia de programação do C#)

classe (C# Reference)

struct (referência de C#)

Interfaces (guia de programação do C#)

Conceitos

Guia de programação do C#

Outros recursos

Referência de C#