C # - Schnittstellen

Eine Schnittstelle ist als syntaktischer Vertrag definiert, dem alle Klassen folgen sollen, die die Schnittstelle erben. Die Schnittstelle definiert die'what' Teil des syntaktischen Vertrages und die ableitenden Klassen definieren die 'how' Teil des syntaktischen Vertrages.

Schnittstellen definieren Eigenschaften, Methoden und Ereignisse, die Mitglieder der Schnittstelle sind. Schnittstellen enthalten nur die Erklärung der Mitglieder. Es liegt in der Verantwortung der ableitenden Klasse, die Mitglieder zu definieren. Es hilft oft bei der Bereitstellung einer Standardstruktur, der die abgeleiteten Klassen folgen würden.

Abstrakte Klassen dienen zum Teil dem gleichen Zweck, werden jedoch meist verwendet, wenn nur wenige Methoden von der Basisklasse deklariert werden sollen und die abgeleitete Klasse die Funktionalitäten implementiert.

Schnittstellen deklarieren

Schnittstellen werden mit dem Schlüsselwort interface deklariert. Es ähnelt der Klassendeklaration. Schnittstellenanweisungen sind standardmäßig öffentlich. Es folgt ein Beispiel für eine Schnittstellendeklaration -

public interface ITransactions {
   // interface members
   void showTransaction();
   double getAmount();
}

Beispiel

Das folgende Beispiel zeigt die Implementierung der obigen Schnittstelle -

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;

namespace InterfaceApplication {
   
   public interface ITransactions {
      // interface members
      void showTransaction();
      double getAmount();
   }
   public class Transaction : ITransactions {
      private string tCode;
      private string date;
      private double amount;
      
      public Transaction() {
         tCode = " ";
         date = " ";
         amount = 0.0;
      }
      public Transaction(string c, string d, double a) {
         tCode = c;
         date = d;
         amount = a;
      }
      public double getAmount() {
         return amount;
      }
      public void showTransaction() {
         Console.WriteLine("Transaction: {0}", tCode);
         Console.WriteLine("Date: {0}", date);
         Console.WriteLine("Amount: {0}", getAmount());
      }
   }
   class Tester {
     
      static void Main(string[] args) {
         Transaction t1 = new Transaction("001", "8/10/2012", 78900.00);
         Transaction t2 = new Transaction("002", "9/10/2012", 451900.00);
         
         t1.showTransaction();
         t2.showTransaction();
         Console.ReadKey();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Transaction: 001
Date: 8/10/2012
Amount: 78900
Transaction: 002
Date: 9/10/2012
Amount: 451900