Object VS Dynamic VS Var in C#


Object

Dynamic

Var

It can store any kind of value because object is a base class of all type in .net framework.

object obj;

It can store any kind of value.

dynamic obj;

It can store any kind of value but it is mandatory to initialize at time of declaration.

var obj=10;

object is not type safety

dynamic is not type safety

var is type safety

object is initialize with null

dynamic is initialize with null

Can’t initialize with null

object type can be passed as method parameter and also can return object type.

public object Method2(object param)

{

object objResponse = param;

return objResponse;

}

dynamic type can be passed as method parameter and also can return dynamic type.

public dynamic Method2(dynamic param)

{

dynamic objResponse = param;

return objResponse;

}

Can’t pass as method parameter and can not have return type as well

Casting required

Casting is not require but you need to know the property and methods related to stored type

Casting is not require