7 von 16 fanden dies hilfreich - Dieses Thema bewerten.

interface (C#-Referenz)

Eine Schnittstelle enthält nur die Signaturen von Methoden, Delegaten oder Ereignissen. Die Implementierung der Methoden erfolgt wie im folgenden Beispiel in der Klasse, die die Schnittstelle implementiert:


      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:

Eine Schnittstelle kann von einer oder mehreren Basisschnittstellen erben.

Wenn eine Basisklassenliste sowohl eine Basisklasse als auch Schnittstellen umfasst, muss die Basisklasse zuerst in der Liste stehen.

Eine Klasse, die eine Schnittstelle implementiert, kann Member dieser Schnittstelle explizit implementieren. Auf einen explizit implementierten Member kann nicht durch eine Klasseninstanz zugegriffen werden, sondern nur durch eine Schnittstelleninstanz. Beispiel:

Weitere Details und Codebeispiele zur expliziten Schnittstellenimplementierung finden Sie unter Explizite Schnittstellenimplementierung (C#-Programmierhandbuch).

Das folgende Beispiel veranschaulicht die Schnittstellenimplementierung. In diesem Beispiel enthält die Schnittstelle IPoint die Eigenschaftendeklaration, die für das Festlegen und Abrufen der Feldwerte zuständig ist. Die Implementierung der Eigenschaft ist in der Point-Klasse enthalten.

// keyword_interface_2.cs
// Interface implementation
using System;
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);
   }
}

Ausgabe

My Point: x=2, y=3

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.9 Schnittstellen

  • 3.4.5 Schnittstellenmember

  • 4.2.4 Schnittstellentypen

  • 10.1.2.2 Schnittstellenimplementierungen

  • 11.2 Strukturschnittstellen

  • 13 Schnittstellen

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)