C# 3.0 introduced implicit type declaration var. This is not same as var type in JavaScript which is a weak type. The variable is still strongly type however the type is inferred by the compiler based on the value.
E.g. var s = "Joe"; will result in s a string type. Similarly var i = 10; will result i as int type.
However there are certain restrictions on declaring var types
1. Implicit local variable must be initialized.
e.g. var j; will result in error
2. Implicit typed local variable cannot have multiple declarators
e.g. var i, j=0; is not allowed
3. Cannot assign null to an implicit typed local variable
e.g var i = null; is not allowed
4. Cannot impicitly convert string to int
e.g. var i = "43";
int j = i+ 1; will result in error;
You can use implicit type to create Anonymous types
e.g var person = new {Name="Joe",Age=37};
Console.WriteLine("{0} : {1}",person.Name, person.Age);
Compiler will create class with Read only properties and derives the class from System.Object. You cannot use Anonymous types as return value or parameters. You can use it only as local variables inside a function.
E.g. var s = "Joe"; will result in s a string type. Similarly var i = 10; will result i as int type.
However there are certain restrictions on declaring var types
1. Implicit local variable must be initialized.
e.g. var j; will result in error
2. Implicit typed local variable cannot have multiple declarators
e.g. var i, j=0; is not allowed
3. Cannot assign null to an implicit typed local variable
e.g var i = null; is not allowed
4. Cannot impicitly convert string to int
e.g. var i = "43";
int j = i+ 1; will result in error;
You can use implicit type to create Anonymous types
e.g var person = new {Name="Joe",Age=37};
Console.WriteLine("{0} : {1}",person.Name, person.Age);
Compiler will create class with Read only properties and derives the class from System.Object. You cannot use Anonymous types as return value or parameters. You can use it only as local variables inside a function.
Comments