Каким образом новое ключевое слово 'dynamic' в .net 4.0 сделает мою жизнь лучше?
Вопрос
Я не совсем понимаю, что это позволит мне сделать (или сойдет с рук :)
Решение
Двумя большими областями являются:
- работа со сборками COM, где методы возвращают неопределенные типы - так что вы, по сути, можете использовать позднюю привязку
- работа с типами DLR
Другие виды использования включают такие вещи, как:
- утиный ввод текста там, где нет интерфейса
- Silverlight разговаривает с DOM главной страницы
- обращение к xml-файлу.
В самом C # это допускает несколько вещей, таких как базовый подход к универсальным операторам:
static T Add<T>(T arg1, T arg2) { // doesn't work in CTP
return ((dynamic)arg1) + ((dynamic)arg2);
}
(конечно, я бы поспорил, что это это лучший (более эффективный) ответ на этот вопрос)
Другие советы
Из блога Чарли Калверта:
Полезные сценарии
Существует три основных сценария, которые будут включены благодаря новой поддержке динамического поиска:
- Автоматизация офиса и другие сценарии COM-взаимодействия
- Потребляющие типы , написанные на динамических языках
- Расширенная поддержка рефлексии
Подробнее читайте здесь: http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx
Есть несколько подкастов о самой функции и о том, как ее можно использовать:
- Внутри C # 4.0:динамическая типизация, необязательные параметры, ковариация и контравариантность
- Новые возможности C # 4.0 - Улучшения COM-взаимодействия
- deCast - динамический Xml с C # 4.0 "проиллюстрирует, как вы можете воспользоваться преимуществами динамической функциональности, включенной в C # 4.0, для доступа к Xml-данным более естественным способом"
Не связан с StackOverflow