interface (C#-Referenz)interface (C# Reference)

Eine Schnittstelle enthält nur die Signaturen von Methoden, Eigenschaften, Ereignissen oder Indexern.An interface contains only the signatures of methods, properties, events or indexers. Eine Klasse oder eine Struktur, die die Schnittstelle implementiert, muss die Member der Schnittstelle implementieren, die in der Schnittstellendefinition angegeben werden.A class or struct that implements the interface must implement the members of the interface that are specified in the interface definition. Im folgenden Beispiel muss die Klasse ImplementationClass eine Methode mit dem Namen SampleMethod implementieren, die keine Parameter hat und void zurückgibt.In the following example, class ImplementationClass must implement a method named SampleMethod that has no parameters and returns void.

Weitere Informationen und Beispiele finden Sie unter Schnittstellen.For more information and examples, see Interfaces.

BeispielExample

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();
    }
}

Eine Schnittstelle kann ein Member eines Namespaces oder einer Klasse sein und Signaturen der folgenden Member enthalten:An interface can be a member of a namespace or a class and can contain signatures of the following members:

Eine Schnittstelle kann von einer oder mehreren Basisschnittstellen erben.An interface can inherit from one or more base interfaces.

Wenn eine Basistypliste sowohl eine Basisklasse als auch Schnittstellen umfasst, muss die Basisklasse zuerst in der Liste stehen.When a base type list contains a base class and interfaces, the base class must come first in the list.

Eine Klasse, die eine Schnittstelle implementiert, kann Member dieser Schnittstelle explizit implementieren.A class that implements an interface can explicitly implement members of that interface. Auf einen explizit implementierten Member kann nicht durch eine Klasseninstanz zugegriffen werden, sondern nur durch eine Schnittstelleninstanz.An explicitly implemented member cannot be accessed through a class instance, but only through an instance of the interface.

Weitere Details und Codebeispiele zur expliziten Schnittstellenimplementierung finden Sie unter Explizite Schnittstellenimplementierung.For more details and code examples on explicit interface implementation, see Explicit Interface Implementation.

BeispielExample

Das folgende Beispiel veranschaulicht die Schnittstellenimplementierung.The following example demonstrates interface implementation. In diesem Beispiel enthält die Schnittstelle die Eigenschaftendeklaration, und die Klasse enthält die Implementierung.In this example, the interface contains the property declaration and the class contains the implementation. Eine beliebige Instanz einer Klasse, die IPoint implementiert, hat die ganzzahligen Eigenschaften x und y.Any instance of a class that implements IPoint has integer properties x and 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

C#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auchSee Also

C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
C#-SchlüsselwörterC# Keywords
VerweistypenReference Types
SchnittstellenInterfaces
Verwenden von EigenschaftenUsing Properties
Verwenden von IndexernUsing Indexers
classclass
structstruct
SchnittstellenInterfaces