标签:
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心,他们常常一个人宅在家中!
闲话说多了,咱进入正题:
首先讲解下匿名变量,在讲解匿名变量之前,我先通过代码展示匿名变量的声明,如下:
static void Main() { var A = 1;//在此,A会被解析为int类型 和 int A=1;是一模一样滴 var AA = "";//AA会被解析为string类型 和 string AA="";是一模一样滴 var AAA = new[] {1,2,3,4,5 };//AAA会被解析为int类型数组 和 int[]类型是一模一样滴 var B = new { };//B会被解析为一个空的对象/集合,没有什么属性 和object B=new {};是一模一样滴 var BB = new { userName = "Jack.Chen", Sex = "男", Age = 26, Address = "中国-苏州" };//BB会被解析为一个拥有属性的对象 和preson类型是一模一样滴 var BBB = new[] { new preson { UserName = "Jack.Chen", Sex = "男", Age = 26, Address = "中国-苏州" }, new preson { UserName = "Loose-Li", Sex = "女", Age = 25, Address = "中国-上海" }, new preson { UserName = "cathy", Sex = "女" } };//BBB会被解析为一个preson对象集合 和List<person>类型是一模一样滴 }
class preson { string userName; public string UserName { get { return userName; } set { userName = value; } } string sex; public string Sex { get { return Sex; } set { Sex = value; } } int age; public int Age { get { return Age; } set { Age = value; } } string address; public string Address { get { return Address; } set { Address = value; } } }
上面的每行代码,与每行代码后面的注释,起到的作用是完全一样的
也就是说,在声明一个变量(并且同时给它赋值)的时候,完全不用指定变量的类型,只要一个var就解决问题了
当然,有些人会问:这样定义会降低程序的性能吗?
可以负责任的告诉你,这样写不会影响性能!
上面的代码和注释里的代码,编译后产生的IL代码(中间语言代码)是完全一样的(编译器根据变量的值,推导出变量的类型,才产生的IL代码)
标签:
原文地址:http://www.cnblogs.com/chenwolong/p/5662867.html