Please enable Javascript to correctly display the contents on Dot Net Tricks!

C Sharp Var data type and Anonymous Type

 Print 
  Author : Shailendra Chauhan
Posted On : 06 Apr 2012
Total Views : 102,810   
Updated On : 20 May 2014
 

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 above example, I change the name of the “Issue” field of Book table to “IssueNumber” and add # before value to get desired output.

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.



Free Interview Books
 
COMMENTS
18 NOV
Angular with Firebase (Classroom)
04:00 PM-07:00 PM IST(+5:30)
18 NOV
Angular2+4 with Firebase (Online)
10:30 AM-12:30 PM IST(+5.30 GMT)
11 NOV
ASP.NET MVC (Online)
08:00 AM-10:00 AM IST / 09:30 PM To 11:30 PM(CST)
11 NOV
ASP.NET MVC (Classroom)
09:00 AM to 12:00 AM
7 NOV
Developing Microsoft Azure Solutions (Online)
07:00 AM-08:30 AM IST/ 8:30 Pm -10:00 PM CST
14 OCT
Angular2 and Angular4 (Online)
03:00 PM-05:00 PM IST (+5.30GMT)
12 OCT
ASP.NET Core (Online)
09:00 PM - 11:00 PM IST(+5:30 GMT)
10 OCT
Microsoft Azure Infrastructure Solutions (Online)
08:00 AM-09:30 AM IST / 09:30 PM -11:00 PM CST
LIKE US ON FACEBOOK
 
+