Junior — Middle
Ar galite paaiškinti vieningos (antis) tipizacijos principą ir kaip jis taikomas programavime?
sobes.tech AI
Atsakymas iš AI
Anties tipas (duck typing) yra programavimo koncepcija, kurioje objekto tipas nėra nustatomas jo klasės ar paveldėjimo būdu, o tam tikrų metodų ir savybių buvimu.
Fraze "Jei kažkas atrodo kaip antis, plaukia kaip antis ir kvėpuoja kaip antis, tada tai yra antis" atspindi esmę: svarbu ne objekto tipas, o jo elgesys.
C# tai nėra įmontuotas mechanizmas kaip dinaminėse kalbose, tačiau jį galima imituoti naudojant sąsajas arba dinaminį tipą (dynamic). Pavyzdžiui, jei objektas įgyvendina būtinus metodus, jį galima naudoti be griežtos tipo patikros.
Pavyzdys su dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Kvack!");
}
}
MakeItQuack(new Duck());
Čia svarbu, kad perduodamas objektas turėtų metodą Quack, kitaip įvykdant gali būti klaida.