码迷,mamicode.com
首页 > Windows程序 > 详细

浅谈C# 匿名变量和匿名方法

时间:2016-07-12 12:02:20      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心,他们常常一个人宅在家中!

闲话说多了,咱进入正题:

首先讲解下匿名变量,在讲解匿名变量之前,我先通过代码展示匿名变量的声明,如下:

 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代码)      

 

 

浅谈C# 匿名变量和匿名方法

标签:

原文地址:http://www.cnblogs.com/chenwolong/p/5662867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!