Junior — Middle
Můžete vysvětlit princip unární (kachní) typizace a jak se uplatňuje v programování?
sobes.tech AI
Odpověď od AI
Typ duck (duck typing) je koncept v programování, kdy typ objektu není určen jeho třídou nebo dědičností, ale přítomností určitých metod a vlastností.
Věta "Pokud něco vypadá jako kachna, plave jako kachna a kváká jako kachna, pak je to kachna" odráží podstatu: není důležitý typ objektu, ale jeho chování.
V C# to není vestavěný mechanismus jako v dynamických jazycích, ale lze jej napodobit pomocí rozhraní nebo dynamického typu (dynamic). Například pokud objekt implementuje potřebné metody, může být použit bez přísné kontroly typu.
Příklad s dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Kvá kv!");
}
}
MakeItQuack(new Duck());
Zde je důležité, aby předaný objekt měl metodu Quack, jinak dojde k chybě za běhu.