Sobes.tech
Junior — Middle

Puoi spiegare il principio di tipizzazione unitaria (di papera) e come viene applicato nella programmazione?

sobes.tech AI

Risposta dell'AI

Il duck typing è un concetto nella programmazione in cui il tipo di un oggetto non è determinato dalla sua classe o ereditarietà, ma dalla presenza di determinati metodi e proprietà.

La frase "Se qualcosa assomiglia a un'anatra, nuota come un'anatra e starnazza come un'anatra, allora è un'anatra" riflette l'essenza: non è il tipo dell'oggetto che conta, ma il suo comportamento.

In C# non è un meccanismo integrato come nei linguaggi dinamici, ma può essere simulato tramite interfacce o tipizzazione dinamica (dynamic). Ad esempio, se un oggetto implementa i metodi necessari, può essere usato senza una verifica rigorosa del tipo.

Esempio con dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Quack!");
    }
}

MakeItQuack(new Duck());

Qui, è importante che l'oggetto passato abbia il metodo Quack, altrimenti si verificherà un errore in fase di esecuzione.