Difference between "var" and "object" in C# [duplicate]
Is the var
type an equivalent to Variant
in VB? When object
can accept any datatype, what is the difference between those two?
Solution 1:
Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit type var
. An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. The following two declarations of i
are functionally equivalent:
var i = 10; //implicitly typed
int i = 10; //explicitly typed
var isn't object
You should definitely read this : C# 3.0 - Var Isn't Object
Solution 2:
For more details have a look at http://www.codeproject.com/Tips/460614/Difference-between-var-and-dynamic-in-Csharp
Solution 3:
The other answers are right on, I'd just like to add that you can actually put your cursor on the 'var' keyword and hit F12 to jump to the inferred type declaration.
Solution 4:
Nope - var
just means you're letting the compiler infer the type from the expression used to assign a value to the variable.
It's just syntax sugar to let you do less typing - try making a method parameter of type "var
" and see what happens :]
So if you have an expression like:
var x = new Widget();
x
will be of type Widget
, not object
.