Junior — Middle
Можете ли да обясните принципа на унитарната (патица) типизация и как се прилага в програмирането?
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, иначе ще се получи грешка по време на изпълнение.