What is the difference between dynamic, var and object?

dynamic, var and object are three different types available in C# programming language which are useful for peculiar scenarios.
  • object type is a base type for all the types in c#.
  • object type used to box primary types.
  • var helps when the type of the variable is not known at compile type.
  • var needs to be initialized.
  • dynamic creates dynamic variables which are not strongly typed.
  • type resolution of dynamic is delayed until runtime. This might cause runtime exceptions, if dynamic variables are called on invalid terms.
object a;
dynamic c;
var b = 15;

a = 100; // int boxed into Integer type
c = "foo"; // c is a string but intellisense doesn't work

b += b; // integer add
c = c * 100; // multiplication - no compilation error

Console.WriteLine($"{a}, {b}, {c}"); 

output: Unhandled exception. Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Operator '*' cannot be applied to operands of type 'string' and 'int' 

Buy Me A Coffee

Found this article helpful? Please consider supporting!


I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity. You can connect with me on Medium, Twitter or LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *