Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C#-Schnittstelle

C#-Schnittstelle

In diesem Tutorial lernen wir die C#-Schnittstelle anhand von Beispielen kennen.

In C# ähnelt eine Schnittstelle einer abstrakten Klasse. Im Gegensatz zu abstrakten Klassen sind jedoch alle Methoden einer Schnittstelle vollständig abstrakt (Methode ohne Körper).

Wir verwenden den interface Schlüsselwort zum Erstellen einer Schnittstelle. Zum Beispiel

interface IPolygon {

  // method without body
  void calculateArea();
}

Hier,


Eine Schnittstelle implementieren

Wir können keine Objekte einer Schnittstelle erstellen. Um eine Schnittstelle zu verwenden, müssen andere Klassen sie implementieren. Wie bei der C#-Vererbung verwenden wir : Symbol zum Implementieren einer Schnittstelle. Zum Beispiel

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int l, int b);

  }

  class Rectangle : IPolygon {

    // implementation of methods inside interface
    public void calculateArea(int l, int b) {

      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();
    
      r1.calculateArea(100, 200);

    }
  }
}

Ausgabe

Area of Rectangle: 20000

Im obigen Beispiel haben wir eine Schnittstelle namens IPolygon erstellt . Die Schnittstelle enthält eine Methode calculateArea(int a, int b) ohne Implementierung.

Hier das Rechteck Klasse implementiert IPolygon . Und stellt die Implementierung von calculateArea(int a, int b) bereit Methode.

Hinweis :Wir müssen die Implementierung aller Interface-Methoden innerhalb der Klasse bereitstellen, die es implementiert.


Mehrere Schnittstellen implementieren

Im Gegensatz zur Vererbung kann eine Klasse mehrere Schnittstellen implementieren. Zum Beispiel

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int a, int b);

  }

  interface IColor {

    void getColor();
  }
   
  // implements two interface
  class Rectangle : IPolygon, IColor {

    // implementation of IPolygon interface
    public void calculateArea(int a, int b) {

      int area = a * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }

    // implementation of IColor interface
    public void getColor() {

      Console.WriteLine("Red Rectangle");
            
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();
    
      r1.calculateArea(100, 200);
      r1.getColor();
    }
  }
}

Ausgabe

Area of Rectangle: 20000
Red Rectangle

Im obigen Beispiel haben wir zwei Schnittstellen, IPolygon und IColor .

class Rectangle : IPolygon, IColor {
  …
}

Wir haben beide Schnittstellen im Rectangle implementiert Klasse durch , getrennt .

Nun, Rectangle muss die Methode beider Interfaces implementieren.


Referenzvariable einer Schnittstelle verwenden

Wir können die Referenzvariable einer Schnittstelle verwenden. Zum Beispiel

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int l, int b);

  }

  class Rectangle : IPolygon {

    // implementation of methods inside interface
    public void calculateArea(int l, int b) {

      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {
       
      // using reference variable of interface
      IPolygon r1 = new Rectangle();
    
      r1.calculateArea(100, 200);
    }
  }
}

Ausgabe

Area of Rectangle: 20000

Im obigen Beispiel haben wir eine Schnittstelle namens IPolygon erstellt . Die Schnittstelle enthält eine Methode calculateArea(int l, int b) ohne Implementierung.

IPolygon r1 = new Rectangle();

Beachten Sie, dass wir die Referenzvariable der Schnittstelle IPolygon verwendet haben . Es zeigt auf die Klasse Rectangle das es implementiert.

Obwohl wir keine Objekte einer Schnittstelle erstellen können, können wir dennoch die Referenzvariable der Schnittstelle verwenden, die auf ihre implementierte Klasse zeigt.


Praktisches Beispiel einer Schnittstelle

Sehen wir uns ein praktischeres Beispiel für die C#-Schnittstelle an.

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea();

  }   
  // implements interface
  class Rectangle : IPolygon {

    // implementation of IPolygon interface
    public void calculateArea() {
      
      int l = 30;
      int b = 90;
      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Square : IPolygon {

    // implementation of IPolygon interface
    public void calculateArea() {
      
      int l = 30;
      int area = l * l;
      Console.WriteLine("Area of Square: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();  
      r1.calculateArea();

      Square s1 = new Square();  
      s1.calculateArea();
    }
  }
}

Ausgabe

Area of Rectangle: 2700
Area of Square: 900

Im obigen Programm haben wir eine Schnittstelle namens IPolygon erstellt . Es hat eine abstrakte Methode calculateArea() .

Wir haben zwei Klassen Square und Rechteck die das IPolygon implementieren Schnittstelle.

Die Regel zur Berechnung der Fläche ist für jedes Polygon anders. Daher calculateArea() ist ohne Implementierung enthalten.

Jede Klasse, die IPolygon implementiert muss eine Implementierung von calculateArea() bereitstellen . Daher Implementierung der Methode in der Klasse Rectangle ist unabhängig von der Methode in der Klasse Square .


Vorteile der C#-Schnittstelle

Nachdem wir nun wissen, was Schnittstellen sind, lernen wir, warum Schnittstellen in C# verwendet werden.


C Sprache

  1. Die Befehlszeilenschnittstelle
  2. Java-Schnittstelle
  3. Java Collections Framework
  4. Java-Erfassungsschnittstelle
  5. Java NavigableSet-Schnittstelle
  6. Java-Lambda-Ausdrücke
  7. Schnittstelle zum drahtlosen Einfahrtssensor
  8. Java - Schnittstellen
  9. Java 9 - Private Schnittstellenmethoden
  10. C# - Schnittstellen