C#lambda委托

lambda委托语法

Lambda表达式是C#中一种简洁而强大的特性,允许我们在需要函数作为参数的地方,以一种更为紧凑的方式定义函数。

以下是一个简单的Lambda表达式的例子,该表达式将两个整数相加:

(int x, int y) => x + y

这个Lambda表达式可以作为一个接受两个整数参数并返回它们之和的委托类型的实例。


使用Lambda表达式的一般语法如下:

(parameters) => expression

其中parameters是逗号分隔的参数列表,expression是表达式,可以是一个单独的值,也可以是一个语句块。


例如,以下Lambda表达式将一个字符串转换为小写并返回:

(string s) => s.ToLower()

Lambda表达式也可以使用隐式类型的参数,如下所示:

(s) => s.ToLower()

甚至可以省略参数的括号,如下所示:

s => s.ToLower()

Lambda表达式可以与LINQ一起使用,以查询集合中的数据。例如,以下代码查询一个整数数组,返回其中所有大于5的数字:

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var result = numbers.Where(n => n > 5);

Lambda表达式也可以使用“=>”左侧的关键字,如以下代码所示:

Func<int, int, int> add = (int x, int y) => { return x + y; };

在这个例子中,我们定义了一个委托类型Func<int, int, int>,它接受两个整数参数并返回它们的和。然后,我们使用Lambda表达式定义这个委托的实现,使用大括号括起来的语句块表示实现,其中语句块的最后一个表达式是返回值。

希望这个简要的Lambda表达式教程能够帮助你更好地理解和使用C#中的Lambda表达式。


lambda变量接收

其中Func第一个string是参数类型,第二个string是返回类型

Func<string,string> MyToLower= s=>s.ToLower();
//使用表达式
string str=MyToLower("AAA");//被转成小写

Func可以有多个参数,最后一个是返回类型,其他都是参数

Func<int,int,string> MyMethod=(s,i)=> "和等于"+(s+i);
string str=MyMethod(100,200);//输出:和等于300
//第一个参为 int s,第二个参数为 int i  ,返回值为 string类型


C#中可以使用Lambda表达式来定义一个匿名函数,Lambda表达式可以用于声明委托、匿名方法以及LINQ查询表达式等。下面是一个使用Lambda表达式声明的方法的示例:


拉姆达方法参数

C#中可以将Lambda表达式作为方法的参数传递,以实现更灵活的编程。例如:

// 定义一个接受两个整数和一个函数参数的方法
public void ProcessNumbers(int a, int b, Func<int, int, int> operation)
{
    // 调用传入的函数参数,对a和b进行操作
    int result = operation(a, b);
    Console.WriteLine($"The result is: {result}");
}
// 使用Lambda表达式作为函数参数调用方法
ProcessNumbers(10, 5, (x, y) => x + y); // 输出结果:The result is: 15


果糖网