Две большие области:
- работа с COM-сборками, где методы возвращают неопределенные типы - так что вы можете использовать позднюю привязку
- работа с типами DLR
Другие виды использования включают в себя такие вещи, как:
- Утиное печатание, где нет интерфейса
- Silverlight разговаривает с DOM главной страницы
- общение с XML-файлом.
В самом C # это позволяет несколько вещей, например, базовый подход к универсальным операторам:
static T Add<T>(T arg1, T arg2) { // doesn't work in CTP
return ((dynamic)arg1) + ((dynamic)arg2);
}
(конечно, я бы сказал, что этот является лучшим (более эффективным) ответом на этот вопрос)