Sobes.tech
Junior — Middle

Môžete vysvetliť princíp jednotnej (kačice) typizácie a ako sa uplatňuje v programovaní?

sobes.tech AI

Odpoveď od AI

Typ kačice (duck typing) je koncept v programovaní, kde typ objektu nie je určen jeho triedou alebo dedičstvom, ale prítomnosťou určitých metód a vlastností.

Veta "Ak niečo vyzerá ako kačica, pláva ako kačica a kváka ako kačica, potom je to kačica" odráža podstatu: dôležité nie je typ objektu, ale jeho správanie.

V C# to nie je zabudovaný mechanizmus ako v dynamických jazykoch, ale dá sa to napodobniť pomocou rozhraní alebo dynamického typu (dynamic). Napríklad, ak objekt implementuje potrebné metódy, môže byť použitý bez prísnej kontroly typu.

Príklad s dynamic:

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

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

MakeItQuack(new Duck());

Tu je dôležité, aby objekt, ktorý sa odovzdáva, mal metódu Quack, inak dôjde k chybe počas behu.