Возможный дубликат:
В чем разница между динамическими (С# 4) и var?
В чем разница между ключевым словом dynamic и var в .NET 4.0 (VS 2010). В соответствии с MSDN определение динамического - динамический поиск позволяет вам писать вызовы метода, оператора и индексатора, свойства и обращения к полю и даже вызовы объектов, которые обходят обычную статическую привязку С# и вместо этого решают динамически.
В то время как определение для var является: неявно типизированная локальная переменная строго типизирована так же, как если бы вы объявили тип самостоятельно, но компилятор определяет тип.
Как это различается в контексте кода ниже:
var a1 = new A();
a1.Foo(1);
dynamic a2 = new A();
a2.Foo(1);