1. 按要求编写Lambda表达式: .NET已定义的Func是一个泛型委托,它封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。它的使用,举一例如下: //Lambda表达式无参数,返回int值,符合委托定义 Func f1 = () => DateTime.Now.Year; Console.WriteLine(f1()); 该泛型委托有好几个同名兄弟类型,如Func,Func 等(直到T16)等,仿照上面的例子编写Lambda表达式,并调用它们: (1)写一个Lambda表达式赋给Func f2,使其完成取平方根功能(可用Math.Sqrt方法)。 (2)写一个Lambda表达式赋给Func f3,使两个整数参数先平方,再相加,再取平方根。 (3)Predicate泛型委托代表一类函数,它们对参数实施判断并返回bool值,实际上表示一种条件。写一个Predicate型Lambda表达式,并调用它。 (4)Action、Action、Action…等委托封装的方法,有0至16个参数,但没有返回值,试写出Action和Action>的Labmda表达式,并调用它们。 (调用它们时,如果需要参数,则自行生成;可以和Java中的Lambda表达式比较一下) Func f2 = x => Math.Sqrt(x); Console.WriteLine(f2(3)); Func f3 = (x, y) => Math.Sqrt(x * x + y * y); Console.WriteLine(f3(3, 4)); int num = 5; Predicate modn = x => x % num == 0; Console.WriteLine($"-3 is {num}'s multiple? {modn(-3)}"); Action print = name => Console.Write(name + "\t"); print("Hello"); print("World"); Console.WriteLine(); Action> a2 = (x, y) => y.Add(x); List lst = new List(); a2(1, lst); a2(2, lst); foreach (int value in lst) Console.WriteLine(value); 以上仅供参考,不一定和这些一模一样