Schnittstellen im allgemeinen Typsystem

Aktualisiert: November 2007

Eine Schnittstelle definiert einen Vertrag, der eine Kann-Beziehung oder eine Hat-ein-Beziehung angibt. Schnittstellen werden häufig zur Implementierung einer Funktionalität verwendet, z. B. Vergleichen und Sortieren (die IComparable- und IComparable<T>-Schnittstellen), Testen auf Gleichheit (die IEquatable<T>-Schnittstelle) oder Auflistung von Elementen in einer Sammlung (die IEnumerable- und IEnumerable<T>-Schnittstellen). Schnittstellen können Eigenschaften, Methoden und Ereignisse haben, die alle abstrakte Member sind. Während die Schnittstelle die Member und deren Signaturen definiert, definiert der die Schnittstelle implementierende Typ die Funktionalität der Schnittstellenmember. Dies bedeutet, dass jede Klasse oder Struktur, die eine Schnittstelle implementiert, Definitionen für die in der Schnittstelle deklarierten abstrakten Member bereitstellen muss. Für eine Schnittstelle kann es erforderlich sein, dass eine beliebige implementierende Klasse oder Struktur auch mindestens eine andere Schnittstelle implementiert.

Für Schnittstellen gelten die folgenden Beschränkungen:

  • Eine Schnittstelle kann mit beliebigem Zugriff deklariert werden, die Schnittstellenmember müssen jedoch alle über die Zugriffsart public verfügen.

  • An Member oder die Schnittstelle selbst können keine Sicherheitsberechtigungen angefügt werden.

  • Schnittstellen können keine Konstruktoren definieren.

  • Schnittstellen können keine Felder definieren.

  • Alle in einer Schnittstelle definierten abstrakten Eigenschaften, Methoden und Ereignisse müssen Instanzmember und dürfen keine statischen Member sein.

Jede Sprache muss Regeln zur Verfügung stellen, mit deren Hilfe eine Implementierung der Schnittstelle zugeordnet werden kann, die den Member benötigt. Der Grund ist, dass in mehreren Schnittstellen Member mit identischen Signaturen deklariert werden können, die jedoch möglicherweise über separate Implementierungen verfügen.

Siehe auch

Konzepte

Typmember

Sicherheitsberechtigungen

Weitere Ressourcen

Allgemeines Typsystem