C# Interface

Mit einem C# Interface kannst du eine Art Blaupause für deine Klassen erstellen. Du kannst ein Interface mit dem Schlüsselwortes interface definieren. Ein Interface kann die Deklarationen von Methoden, Eigenschaften und Events enthalten. Felder und automatisch implementierte Eigenschaften sind jedoch nicht zulässig.

Entdecke das Potenzial von C# und werde ein erfahrener Programmierer! Unser exklusiver Video Intensivkurs bietet dir alles, was du brauchst, um C# wie ein Pro zu beherrschen. Lerne von erfahrenen Dozenten, arbeite dich durch interaktive Übungen und Projekte und verbessere deine Fähigkeiten in Rekordzeit. Klick jetzt hier und starte deine Reise zum C#-Experten!

Implementieren eines C# Interfaces (dt. Schnittstelle)

Eine Schnittstelle (Interface) kann durch eine Klasse, Struktur oder eine andere Schnittstelle implementiert werden. Wenn eine Klasse oder Struktur eine Schnittstelle implementiert, muss sie Implementierungen für alle Methoden, Eigenschaften, und Events bereitstellen, die in der Schnittstelle definiert sind. Falls die Klasse oder Struktur keine Implementierung für eine bestimmte Methode, Eigenschaft oder ein bestimmtes Event bereitstellt, muss sie eine NotImplementedException auslösen.

Interfaces sind in C# defintiv ein wichtiges Thema und wenn du noch mehr über sie und viele weitere Themen lernen möchtest, dann schau dir unbedingt die Inhalte des C# Video-Intensivkurses an. Mit diesem Kurs vervielfachen wir deine C# Expertise in kürzester Zeit um aus dir einen vollwertigen C# Entwickler zu machen.

Eine Schnittstelle implementiert alle Member eines Interfaces implizit wenn sie von einem Interface implementiert. Dies bedeutet, dass die Klasse auf die Member der Schnittstelle zugreifen kann, ohne sie explizit implementieren zu müssen.

Tipp: Typischer Weise steht vor dem Namen des Interfaces ein I (wie IMyInterface)

Im folgenden Beispiel wird gezeigt, wie eine Schnittstelle definiert und implementiert wird.

interface IVehicle
{ 
   void Drive(); // Nur die reine Deklaration ohne Statements etc.
}

class Car : IVehicle// Implementierung
{ 
   public void Drive() 
   { 
      // Code der Methode wird hier definiert
   }
}

Ein C# Interface kann nur Deklarationen enthalten, mit denen angegeben werden kann, was ein Typ tun kann. Es kann keine Implementierungen enthalten, die der eigentliche Code sind, der etwas zum Laufen bringt.

Explizite Implementierung eines C# Interface

Wenn eine Klasse mehrere Schnittstellen implementiert, kann sie die explizite Schnittstellenimplementierungssyntax verwenden, um sie lesbarer zu machen.

Dies ist auch hilfreich, wenn zwei Schnittstellen über eine Methode mit demselben Namen verfügen. Du kannst die explizite Schnittstellenimplementierung folgendermaßen anwenden:

interface InterfaceOne 
{ 
   void Log(); 
}

interface InterfaceTwo 
{ 
   void Log(); 
} 

class MyClass : InterfaceOne, InterfaceTwo 
{ 
    void InterfaceOne.Log(){
       // Code für Funktionalität hier
    } 

    void InterfaceTwo.Log(){
       // Code für Funktionalität hier
    } 
}

Vorteile der Verwendung eines C# Interface

Ein Vorteil ist, dass du abstrakte Klassen erstellen kannst und dass du Implementierungsdetails vor anderen Klassen ausblenden kannst. Die Verwendung von Interfaces ermöglicht mehr Flexibilität beim entwerfen von Klassen und trägt dazu bei, Code lesbar zu machen, da wir wissen, was wir von einer Schnittstelle erwarten können.

Polymorphismus vs Schnittstellen

In C# wird Polymorphismus über Schnittstellen und abgeleitete Klassen implementiert. Wenn du eine Methode für ein Objekt aufrufst, bestimmt C# automatisch welche Version dieser Methode aufgerufen werden soll, indem der Typ des Objekts betrachtet wird. Wenn das Objekt die Schnittstelle implementiert, ruft C# die Version der in der Schnittstelle definierten Methode auf. Handelt es sich bei dem Objekt aber um eine abgeleitete Klasse, ruft C# die Version der in der abgeleiteten Klasse definierten Methode auf.

Mehr Informationen zum Thema C# Interface findest du hier. Unser Artikel zum Thema Vererbung könnte dich interessieren.

Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Willst du wissen, wie du einfach und schnell zum C# Profi wirst?
PRogrammieren lernen kann einfach sein!
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Setze dein gelerntes Wissen in die Tat um und programmiere echte Anwendungen.
1. Tipp
1/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Lerne wie du mit Debugging Fehler eines Programmes professionell beheben kannst.
2. Tipp
2/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Fokussiere dich beim lernen auf die richtigen Inhalte und nicht auf die Menge.
3. Tipp
3/3
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Video-Intensivkurs wirst du ganz einfach zum echten C# Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Ja, so einfach kann es sein! Mit meinem C# Intensivkurs für Grundlagen und Expertenwissen wirst du ganz einfach zum echten Profi Entwickler. Möchtest du mehr dazu erfahren?
Alles in einem Kurs
Overlay Image
Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.