using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 可变类型 // var 是类型推断 var i = 10; Console.WriteLine(i.GetType().ToString()); // dynamic 是弱类型 dynamic j = 10; Console.WriteLine(j.GetType().ToString()); j = "abc"; Console.WriteLine(j.GetType().ToString()); // 对象初始化器 var p1 = new Person() { Name = "对象初始化器" }; Console.WriteLine(p1.Name); // 集合初始化器 var p2 = new List<Person>() { new Person(){ Name = "A" }, new Person(){ Name = "B" } }; // 匿名类型 var p3 = new { Name = "匿名类型" }; Console.WriteLine(p3.GetType().ToString()); // 扩展属性 p1.Say("Hello,World!"); // 委托 和 实现 p1.MyAdd = Add1; // 通常看到的事件的写法如下 //p1.MyAdd += Add1; // 调用没有方法的委托会报错 Console.WriteLine(p1.MyAdd(1, 2)); // 匿名委托 p1.MyAdd += delegate(int a, int b) { return a + b * 2; }; Console.WriteLine(p1.MyAdd(1, 2)); // lambda 表达式 p1.MyAdd = (x, y) => x * 2 - y; Console.WriteLine(p1.MyAdd(3, 5)); p1.MyAdd2 = () => 5; Console.WriteLine(p1.MyAdd2()); Console.ReadKey(); } private static int Add1(int a, int b) { return a + b; } } // 自动属性 public class Person { public string Name { get; set; } public Add MyAdd; public Add2 MyAdd2; } // 扩展属性 public static class PersonEx { public static void Say(this Person p, string str) { Console.WriteLine(p.Name + " Say : " + str); } } // 委托 public delegate int Add(int a, int b); public delegate int Add2(); }
原文:http://www.cnblogs.com/z5337/p/5245521.html