Partilhar via


interface (translation from VPE for Csharp Reference)

Uma interface contém apenas as assinaturas de métodos, Propriedades, eventosor indexadores.A implementação de membros é feita na classe ou struct que implementa a interface, sistema autônomo mostrado no exemplo a seguir:

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 espaço para nome ou uma classe e pode conter assinaturas dos seguintes membros:

Uma interface pode herdar de um ou mais interfaces básicas.

Quando uma lista  tipo base contém uma classe base e interfaces, a classe base deve vir em primeiro lugar na lista.

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

Para obter mais detalhes e exemplos de código na implementação explícita da interface, consulte implementação explícita da interface (guia de programação translation from VPE for Csharp).

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.

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 da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 1,9 Interfaces de

  • 3.4.5 Os membros da interface

  • 4.2.4 Tipos de interface

  • 10.1.2.2 Implementações de interface

  • 11.2 Struct interfaces

  • 13 Interfaces de

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

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

Usando propriedades (guia de programação translation from VPE for Csharp)

Usando os indexadores (guia de programação translation from VPE for Csharp)

classe (translation from VPE for Csharp Reference)

struct (translation from VPE for Csharp Reference)

Outros recursos

Referência C#