Оё метавонед принсипи типизатсияи унитариро (патка) ва чӣ гуна дар барномасозӣ истифода мешавад, шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
Тасвири қуши (duck typing) — иншоот дар барномаигӣ, ки дар он навъи объект на аз синф ё мерос, балки аз ҳузури баъзе методҳо ва хосиятҳо муайян мешавад.
Фраза "Агар чизе мисли қуш, шиновтани мисли қуш ва қиқир-қиқир кардани мисли қуш бошад, пас он қуш аст" мазмуни асосро ифода мекунад: муҳим нест, ки навъи объект чист, балки рафтору амалҳояш.
Дар C# ин механизм дарунсохт нест, чун дар забонҳои динамикӣ, аммо бо истифода аз интерфейсҳо ё навъи динамикӣ (dynamic) имитатсия кардан мумкин аст. Масалан, агар объект методҳои заруриро иҷро кунад, метавонад бе санҷиши қатъии навъ истифода шавад.
Масалан бо dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Кря-кря!");
}
}
MakeItQuack(new Duck());
Ин ҷо муҳим аст, ки объекте, ки дода мешавад, метод Quack-ро дошта бошад, вагарна хатогӣ дар вақти иҷро пайдо мешавад.