ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
17. сентября 2012 13:45

c sharp

Рассмотрим по простому отличие между ключевыми словами ‘var’ и ‘dynamic’. Когда мы используем ‘var’ решение о том, какого типа будет переменная принимается компилятором во время компиляции. Но когда мы используем ‘dynamic’ решение о типе принимается уже во время выполнения программы. Если вы программировали на C# раньше, то вы уже знаете когда нужно использовать ключевое слово ‘var’: строго определяемый тип локальных переменных, для которых компилятор может определить тип из инициализирующего выражения - это очень полезная возможность, используемая повсеместно в LINQ. Из плюсов ‘var’ можно отметить более просто рефакторинг в некоторых случаях, из минусов мучения с определением/запоминанием типа переменной. Если исходник скомпилирован, то достаточно поднести курсор мыши к переменной. Но если все в var-ах, то может быть неудобно читать исходники. Ключевое слово ‘dynamic’ было введено в .NET Framework 4.0. NET Framework 4.0 также ввел поддержку Dynamic Language Runtime (DLR) для согласования с такими языками как IronRuby and IronPython (возможно они уже померли?). C# 4.0 предлагает доступ к DLR в использовании ключевого слова ‘dynamic’. C# это язык со статической типизацией и применение ‘dynamic’ типа ОТКРЫВАЕТ ДВЕРИ АДА. То есть, оно говорит компилятору, что это динамический ВЫЗОВ АДСКОГО СОТОНЫ, и надо перенести все проверки типа (и ошибки соответственно) на время выполнения. Я думаю после этого QA отдел (тестирования) будет не раз поминать крепким словом ‘dynamic’ ваше творчество.

Это перевод. Оригинал здесь.

Похожие записи


CommonLibrary.NET - полезных вспомогательные компоненты под C# 4.0
Коллекция удобных для повторного использования кода и компонентов, написанных на C # 4.0. Они реализуют следующие шаблоны (решают задачи): ActiveRecord, CSV, анализ командной строки, конфигурация, проверки, коллекции, аутентификация и многое другое. Представляет собой аналог библиотеки Java Commons из Java. Идеальна в качестве библиотеки утилит для разработчика н...

Как найти слова из больших букв в строке на C#
Однажды я помог другу создать API для текстового редактора на C#. Одним из требований к редактору было следующее: редактор должен находить в строке слова написанные большими буквами и подсвечивать их. Дальше идет пример показывающий, как слова из больших букв могут быть отфильтрованы в строке. static void Main(string[] args){ // code from DevCurry.com var str...

Многопоточный HTTP сервер на C#
Оригинал статьи здесь: Многопоточный сервер на C# за 15 минут Автор (на хабре): ertaquo C# довольно простой и гибкий язык. Вместе с .NET поставляется довольно много уже готовых классов, что делает его еще проще. Настолько, что вполне можно написать простой многопоточный HTTP-сервер для отдачи статического содержимого всего за 15 минут. Можно было бы использовать уже...

Комментарии

 
inbruk 21.09.2012 18:26:43 #

Примеры ситуаций в которых оправдано использование dynamic:

1) Вызов javascript-овых методов из Silverlight-а
2) COM interop при взаимодействии с MS Office API
3) Возможно при чтении Xml


Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий