Sobes.tech
Junior

Cos'è un'interfaccia in C#?

sobes.tech AI

Risposta dell'AI

L'interfaccia in C# è un contratto che definisce un insieme di membri (metodi, proprietà, eventi, indicizzatori), ma non contiene la loro implementazione. Le classi e le strutture possono implementare una o più interfacce, impegnandosi a fornire l'implementazione di tutti i membri dell'interfaccia.

Caratteristiche principali:

  • Permette di raggiungere il polimorfismo.
  • Definisce comportamento, non stato.
  • Può contenere solo dichiarazioni di membri senza modificatori di accesso (implicitamente public).
  • Non può essere creata direttamente (istanziata).
  • Supporta l'ereditarietà multipla (una classe può implementare più interfacce).
  • Sono state introdotte interfacce di default con .NET Core 3.0+, che consentono di fornire implementazioni di membri.

Esempio:

// Definizione dell'interfaccia
public interface ICustomer
{
    string GetFullName(); // Dichiarazione di metodo
    int CustomerId { get; } // Dichiarazione di proprietà
}

// Classe che implementa l'interfaccia
public class CompanyCustomer : ICustomer
{
    public int CustomerId { get; set; }
    public string CompanyName { get; set; }
    public string ContactPerson { get; set; }

    public string GetFullName()
    {
        return $"{CompanyName} ({ContactPerson})";
    }
}