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