Тип dynamic
является статическим типом, но обходит проверку статического типа. В большинстве случаев он функционирует, как тип object
. Во время компиляции предполагается,что элементы с этим типом поддерживают любые операции. Поэтому разработчику не нужно следить за тем, откуда объект получает свое значение.
В отличие от ключевого слова var
, объект, объявленный как dynamic
, может менять тип вовремя выполнения. При использовании ключевого слова var
определение типа объекта откладывается. Но как только он определен компилятором, изменять его уже нельзя. Что касается объекта dynamic
, то можно не просто изменить его тип, но делать это многократно.Это отличается от приведения объекта от одного типа к другому. При приведении объекта создается новый объект с другим, но совместимым типом.
Все может быть динамическим, кроме событий!