Object-Able to store any kind of value, because object is the base class of all types in .NET Framework.
public void CheckObject()
{
object test = 10;
test = test 10; // Compile time error
test = "hello"; // No error
}
Dynamic-Able to store any type of the variable, similar to old VB language variable.
public void CheckDynamic()
{
dynamic test = 10;
test = test 10; // No error
test = "hello"; // No error, neither compile time nor run time
}
Var-Able to store any type of value but it is required to initialize at the time of declaration.
public void CheckVar()
{
var test = 10; // after this line test has become of integer type
test = test 10; // No error
test = "hello"; // Compile time error as test is an integer type
}