C # - Interfacce

Un'interfaccia è definita come un contratto sintattico che tutte le classi che ereditano l'interfaccia dovrebbero seguire. L'interfaccia definisce il'what' parte del contratto sintattico e le classi derivate definiscono il 'how' parte del contratto sintattico.

Le interfacce definiscono proprietà, metodi ed eventi, che sono i membri dell'interfaccia. Le interfacce contengono solo la dichiarazione dei membri. È responsabilità della classe derivante definire i membri. Spesso aiuta a fornire una struttura standard che le classi derivate seguirebbero.

Le classi astratte in una certa misura servono allo stesso scopo, tuttavia, vengono utilizzate principalmente quando solo pochi metodi devono essere dichiarati dalla classe base e la classe derivante implementa le funzionalità.

Dichiarazione di interfacce

Le interfacce vengono dichiarate utilizzando la parola chiave interface. È simile alla dichiarazione di classe. Le istruzioni dell'interfaccia sono pubbliche per impostazione predefinita. Di seguito è riportato un esempio di una dichiarazione di interfaccia:

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

Esempio

L'esempio seguente mostra l'implementazione dell'interfaccia precedente:

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();
      }
   }
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

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