ps做网站边框,全网网站快速排名推广软件,如何经营一个购物网站,正规少儿编程排名一、lambda表达式lambda表达式#xff1a;包括Func表达式、Action表达式、Predicate表达式#xff0c;可以让我们定义一个变量接收一个函数#xff0c;主要是作为另外一个函数的参数进行使用,具体体现变量和函数体之间使用其他编程语言称之为箭头函数#xff0…一、lambda表达式lambda表达式包括Func表达式、Action表达式、Predicate表达式可以让我们定义一个变量接收一个函数主要是作为另外一个函数的参数进行使用,具体体现变量和函数体之间使用其他编程语言称之为箭头函数但是严谨来说c#没有箭头函数。定义lambda表达式方法的组成 参数列表、返回值 、方法名 方法体Func表达式1使用Func关键字接收有返回值的lambda表达式Func 方法类型、函数类型第一个类型 是参数1的类型第二个类型 是参数2的类型第三个类型 是返回值的类型f1 变量名(a, b) 参数类别 不用写类型多个参数时候加() 表达式{}方法体有返回值的添加return 关键字。Funcint,int ,int f1 (a, b) { return a b; }; Console.WriteLine(f1(10,20));// 可以通过变量名调用函数Action表达式2使用Action关键字接收无返回值的lambda表达式定义一个字符串参数 无返回值的lambda表达式如果一个参数可以把()不写如果函数体只有一句可以把{}省掉Actionstring f2 (a) Console.WriteLine(a); f2(hell world);Predicate表达式接收返回值为bool类型的lambda表达式Predicateint f3 a a %20; Console.WriteLine(f3(3));//false Funcint,bool f4 a a%30; Console.WriteLine(f4(9));//true总结/*Func参数类型,参数类型返回值类型 f1 (a,b){return ab}* 可以接受有返回值的lambda表达式 参数个数没有限制、返回值的类型也是没有限制** Actionstring f2 a Console.WriteLine(a);* 只能接收无返回值的lambda表达式** Predicateint f3 a a %20;* 只能接收返回值为bool类型的lambda表达式*/lambda具体的使用场景最为另外一个函数参数进行使用数组的查询方法当中使用int[] ints { 1, 2, 3, 4,6,9 }; Console.WriteLine(Array.Find(ints, a a % 2 0));//2 int[] ss Array.FindAll(ints,vv%30);//找到所有的数组 // 第一种遍历数组 for (int i 0; i ss.Length; i) { Console.WriteLine(ss[i]-------); } //第二种遍历数组 foreach (var item in ss) { Console.WriteLine(item); } // 第三种遍历数组 Array.ForEach(ss, v Console.WriteLine(v ?????)); //where 找到所有满足条件的元素 foreach (var item in ints.Where(v { return v % 3 0; })) { Console.WriteLine(item); }二、可空类型数据空类型是null引用类型的变量都可以赋值成null基本数据类型不能赋值为null的 //int a null; 报错如果想让基本数据类型能够赋值为null 可以使用int? a null; // a以后可以等于null 在原先的范围内加一个null赋值范围 a 100;// a可以再赋值100 // int sum a 100; 报错 a是可空类型但是sum不是可空类型即想使用可空类型 又想使用基本类型进行运算可以把可空类型再加一个问号 使用双??int ? b null; // b可空类型 b 300; int aa b ?? 100; // b?? 如果b是null aa的值100, 如果b不是null aa的值300 Console.WriteLine(aa); //300举例int? c null; int d c ?? 100; Console.WriteLine(d);//100 c 999; int sum (c ?? 100) 200; Console.WriteLine(sum);// 1199