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, иначе будет ошибка во время выполнения.