Вопрос
Я уже много читал о Duck Typing и, кажется, понимаю эту концепцию.
Я не понял, в каком случае действительно имеет смысл отказаться от преимуществ строго типизированного программирования в пользу преимуществ Duck Typing. В каком случае можно использовать Duck Typing вместо интерфейсов и наследования?
Я имею в виду, что если вам все равно нужно обеспечить, чтобы объект, переданный методу, реализовывал определенные методы, почему бы мне просто не определить интерфейс?
Чтобы быть ясным, я знаю, как работает Duck Typing. Я хочу знать, когда действительно имеет смысл его использовать.
Уточнение:
В этом случае вы бы использовали
public bool MyMethod(dynamic obj)
вместо
public bool MyMethod(ISomeInterface obj)
//or
public bool MyMethod(SomeBaseClass obj)
foreach
,await
, LINQ, инициализаторы коллекций), и все они реализованы на стороне компилятора, я не понимаю вашего вопроса. - person xanatos   schedule 03.06.2015dynamic
. Это моё собственное мнение. И в 1,5 миллионах написанных мной исходных кодов os есть 2-3 использованияdynamic
. - person General-Doomer   schedule 03.06.2015