C Sharp Var data type and Anonymous Type

Shailendra Chauhan  Print   2 min read  
06 Apr 2012
26 Apr 2019
Intermediate
123K

var data type was introduced in C# 3.0. var is used to declare implicitly typed local variable means it tells the compiler to figure out the type of the variable at compilation time. A var variable must be initialized at the time of declaration.

Valid var statements

var str = "1"; 
var num = 0; 
string s = "string"; 
var s2 = s; 
s2 = null; 
string s3 = null; 
var s4 = s3; 

At compile time, the above var statements are compiled to IL, like this:

 string str = "1"; 
int num = 0; 
string s2 = s; 
string s4 = s3; 

The compile-time type value of var variable cannot be null but the runtime value can be null.

 // invalid var statements 
var v; //need to initialize
var num = null; // can’t be null at compile time 

Once var variable is initialized its data type became fixed to the type of the initial data.

 // invalid var statements 
var v2 = "str12";
 v2 = 3; // int value can’t be assign to implicitly type string variable v2 

Anonymous Types

An anonymous type is a simple class generated by the compiler within IL to store a set of values. var data type and new keyword is used to create an anonymous type.

 var emp = new { Name = "Deepak", Address = "Noida", Salary=21000 }; 

At compile time, the compiler will create an anonymous type, as follows:

 class __Anonymous1 
{ 
 private string name; 
 private string address; 
 int salary; public string Name
 { 
 get{return name; }
 set { name=value } 
 } 
 public string Address
 { 
 get{ return address; } 
 set{ address=value; } 
 } 
 public int Salary
 { 
 get{ return salary; } 
 set{ salary=value; } 
 } 
} 

The anonymous type is very useful when you want to shape the result in your desired form like this:

 var result =from book in Books
 where book.Price > 200 
 orderby book.IssueDate descending 
 select new 
 { 
 Name = book.Name, 
 IssueNumber = "#" + book.Issue
 }; 

In the above example, I change the name of the “Issue” field of Book table to “IssueNumber” and add # before the value to get the desired output.

Read More Articles Related to csharp
Summary

In this article, I try to explain var data type with example. I hope after reading this article you will be able to use this trick in your code. I would like to have feedback from my blog readers. Please post your feedback, question, or comments about this article.

Take our free skill tests to evaluate your skill!

In less than 5 minutes, with our skill test, you can identify your knowledge gaps and strengths.

Learn to Crack Your Technical Interview

+
+
Accept cookies and close this message