标签:
高手掠过!仅仅是整理一下
自动属性: C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑
//Demo:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
匿名类:
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 }
标签:
原文地址:http://www.cnblogs.com/workcn/p/4378170.html