Junior — Middle
Vai jūs varat izskaidrot vienotas (pīles) tipizācijas principu un kā tas tiek piemērots programmēšanā?
sobes.tech AI
Atbilde no AI
Pīļu tipizācija (duck typing) ir koncepcija programmēšanā, kur objekta tips netiek noteikts pēc tā klases vai mantošanas, bet pēc noteiktu metožu un īpašību klātbūtnes.
Frāze "Ja kaut kas izskatās kā pīle, peld kā pīle un kvak kā pīle, tad tas ir pīle" atspoguļo būtību: nav svarīgs objekta tips, bet tā uzvedība.
C# tas nav iebūvēts mehānisms kā dinamiski valodās, bet to var imitēt, izmantojot interfeisus vai dinamisko tipu (dynamic). Piemēram, ja objekts īsteno nepieciešamās metodes, to var izmantot bez stingras tipa pārbaudes.
Piemērs ar dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Kvack!");
}
}
MakeItQuack(new Duck());
Šeit ir svarīgi, lai pārsūtītais objekts būtu ar metodi Quack, citādi kļūda notiks izpildes laikā.