Sobes.tech
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, иначе ще се получи грешка по време на изпълнение.