C# orientato agli oggetti

Interfacce e astrazione in C#

In questa lezione definirai un'interfaccia che descrive una capacità di un oggetto e la implementerai in una classe.

Introduzione

Un'interfaccia descrive cosa sa fare un oggetto, per esempio inviare notifiche, senza stabilire come memorizza i dati né da chi eredita. Più classi senza alcun legame tra loro possono implementare la stessa interfaccia. Per convenzione, in C# i nomi delle interfacce iniziano con la lettera I.

L'interfaccia INotifier dichiara solo il metodo Send. La classe EmailNotifier implementa l'interfaccia stampando la notifica via email. La variabile notifier ha il tipo INotifier, quindi il codice che la usa non dipende dal modo di invio. Per aggiungere un canale SMS o Slack basta creare una nuova classe che implementi INotifier.

Esempio C# eseguibile

C#
Esegui il codice →
Program.cs
using System;

interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }

class Program
{
    static void Main()
    {
        INotifier notifier = new EmailNotifier();
        notifier.Send("Build complete");
    }
}
Risultato dell'esecuzione
Email: Build complete

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide