using System; using System.Collections.Generic; // 命名空间 using System.Linq; // linq 是一种语言集成查询。 /* 所属类型不同 匿名内部类: 可以是接口,也可以是抽象类 ,还可以操作具体类 lambda表达式:只能操作接口 interface 使用限制不同: 如果接口中有且仅仅有一个抽象方法,可以使用lambda表达式,也可以使用匿名内部类。 如果接口中多于一个抽象方法,只能使用匿名内部类,而不能使用lambda表达式。 实现原理不同: 匿名内部类; 编译之后,产生一个单独的.class字节码文件 比较下来就是匿名内部类的选择性更大。而lambda表达式选择性小,少。 must there be! 匿名内部类 前提:需要存在一个接口 或者类 1 创建实现类 2 重写方法 3 创建实现类对象 4 调用重写后的方法 匿名内部类 格式: new 类名 ? 接口名 () { } */ namespace AnonymousDemo1 { public class Program { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } // new { ID=1,Name=""} //使用object 声明 object student2 = new { ID = 2, Name = "李四", Age = 20 }; // 2. 使用 var 声明 //var student = new //{ // ID = 1, // Name = "张三" //}; //匿名方法 //private void Start() //{ // de = delegate (int a, int b) // { // return a + b; // }; //} // new Interface(){ // public void show() // { // } //} //4.匿名对象 和 Linq 搭载 ////匿名对象 和 Linq //int[] nums = new int[] { 1, 2, 3 }; //var studentList = nums.Select(q => new //{ // ID = q, // Name = "姓名" + q //}); } }