Sobes.tech
Back to questions
Junior — Middle
67

Можете объяснить принцип унитарбной (утиная) типизации и как он применяется в программировании?

Answer from AI

sobes.tech AI

Утиная типизация (duck typing) — это концепция в программировании, при которой тип объекта определяется не его классом или наследованием, а наличием определённых методов и свойств.

Фраза "Если что-то выглядит как утка, плавает как утка и крякает как утка, значит это утка" отражает суть: важен не тип объекта, а его поведение.

В C# это не встроенный механизм, как в динамических языках, но можно имитировать через интерфейсы или динамическую типизацию (dynamic). Например, если объект реализует нужные методы, его можно использовать без строгой проверки типа.

Пример с dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Quack!");
    }
}

MakeItQuack(new Duck());

Здесь важно, чтобы переданный объект имел метод Quack, иначе будет ошибка во время выполнения.