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' 
Ram
Ram

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.

Privacy Overview
Referbruv

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Strictly Necessary Cookies

Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

3rd Party Cookies

This website uses Google Analytics to collect anonymous information such as the number of visitors to the site, and the most popular pages.

Keeping this cookie enabled helps us to improve our website.