Sobes.tech
Junior — Middle

El tudná magyarázni az egységes (kacsa) típusosság elvét és hogy alkalmazzák a programozásban?

sobes.tech MI

Válasz az MI-től

A kacsa típus (duck typing) egy programozási fogalom, amely szerint egy objektum típusa nem a osztálya vagy öröklése alapján van meghatározva, hanem bizonyos metódusok és tulajdonságok megléte alapján.

A "Ha valami úgy néz ki, mint egy kacsa, úszik, mint egy kacsa, és quack, mint egy kacsa, akkor az egy kacsa" kifejezés tükrözi a lényegét: nem az objektum típusa számít, hanem a viselkedése.

C#-ban ez nem beépített mechanizmus, mint a dinamikus nyelvekben, de utánozható interfészek vagy dinamikus típus (dynamic) segítségével. Például, ha egy objektum megvalósítja a szükséges metódusokat, használható szigorú típusellenőrzés nélkül.

Példa a dynamic használatával:

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

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

MakeItQuack(new Duck());

Itt fontos, hogy a átadott objektumnak legyen a Quack metódusa, különben futás közben hiba lép fel.