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

关于C#高阶知识捡漏

时间:2015-03-30 15:55:54      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

高手掠过!仅仅是整理一下

自动属性:  C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑

代码如下

//Demo:

    public class User

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

    }

 

匿名类:

l将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。
代码如下:
//

var v = new { Amount = 108, Message = "Hello" };

 

对象初始化器,集合初始化器:

代码如下:

List<Person> people = new List<Person>{

            new Person { FirstName = "Scott", LastName = "Guthrie", Age = 32 },

            new Person { FirstName = "Bill", LastName = "Gates", test02 = 85},

            new Person { FirstName = "Susanne", Age = 32 },

            null,

        };

 

 

Person person = new Person() { FirstName = “Scott”, LastName = “Guthrie”, test02 = 56 };

 

扩展方法:

 

 1 namespace ConsoleApplication2
 2 {
 3     public static class StringDemo
 4     {
 5         /// <summary>
 6         /// 扩展方法  
 7         /// </summary>
 8         /// <param name="txt"></param>
 9         /// <param name="str">要传入的数据</param>
10         /// <returns></returns>
11         public static string strSet(this string txt, string str)
12         {
13             ///默认 扩展方法的使用必须是 同一 命名空间下
14             ///注意扩展方法  满足 静态类 静态方法
15             return str;
16 
17         }
18     }
19     public class Demo
20     {
21         public string Demostring()
22         {
23             string str="Demmo";
24             return str.strSet(str);
25         }
26     }
27 }

 

 Lambda表达式:

在介绍lamada表达式之前,先要说一下委托:

委托是一个类型,指向一个方法的指针(安全的函数指针)
代码如下:

 1  /// <summary>
 2     /// delegate 编译时生成一个class
 3     /// </summary>
 4     /// <param name="num1"></param>
 5     /// <param name="num2"></param>
 6     /// <returns></returns>
 7     public delegate string number(string num1, string num2);
 8     public class Demo
 9     {
10         public string test()
11         {
12             string number1 = "number1";
13             string number2 = "number2";
14             //以下会逐过程演化  直至 Lambda
15             //方法一
16             //number lo = new number(Demostring); //委托是一个类 可以直接New
17             //方法二
18             //number lo = delegate(string num1, string num2) { return num1 + num2; };
19             //方法三
20             //number lo=(string num1, string num2)=>{return num1 + num2;};   //  => 等于 goes to
21             //方法四
22             number lo = (num1, num2) => { return num1 + num2; };
23             return lo(number1, number2);
24         }
25         public string Demostring(string number1, string number2)
26         {
27             return number1 + number2;
28         }
29 
30     }

 

 

 

 

 

关于C#高阶知识捡漏

标签:

原文地址:http://www.cnblogs.com/workcn/p/4378170.html

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