C#匿名函数,lambda表达式笔记
发布人:shili8
发布时间:2025-03-04 00:56
阅读次数:0
**C# 匿名函数与 Lambda 表达式笔记**
###什么是匿名函数?
匿名函数是一种不需要声明名称的函数,它可以直接在使用的地方定义。匿名函数通常用于事件处理器、委托等地方。
###什么是Lambda表达式?
Lambda 表达式是一种紧凑的表示匿名函数的方式,通常用于简化代码。
### 匿名函数与 Lambda 表达式的区别虽然匿名函数和 Lambda 表达式都可以用来定义不需要声明名称的函数,但它们有一个关键的区别:
* 匿名函数是使用 `delegate` 关键字定义的,而 Lambda 表达式则是使用 `=>` 操作符定义的。
### 匿名函数示例
csharp// 使用 delegate 定义匿名函数delegate int Func(int x, int y); Func add = delegate (int x, int y) { return x + y; }; Console.WriteLine(add(3,4)); // 输出:7
### Lambda 表达式示例
csharp// 使用 => 操作符定义 Lambda 表达式Func<int, int, int> add = (x, y) => x + y; Console.WriteLine(add(3,4)); // 输出:7
### 匿名函数与 Lambda 表达式的使用场景匿名函数和 Lambda 表达式都可以用于事件处理器、委托等地方。例如:
csharp// 使用 delegate 定义匿名函数作为事件处理器Button button = new Button(); button.Click += delegate { Console.WriteLine("按钮被点击!"); };
csharp// 使用 => 操作符定义 Lambda 表达式作为事件处理器Button button = new Button(); button.Click += (sender, e) => Console.WriteLine("按钮被点击!");
### 匿名函数与 Lambda 表达式的性能比较匿名函数和 Lambda 表达式在性能上没有明显差异。两者都可以快速执行。
### 总结匿名函数和 Lambda 表达式都是 C# 中用于定义不需要声明名称的函数的方式。虽然它们有一个区别,但是在使用场景上是相同的。选择哪种方式取决于个人偏好和代码风格。
### 最后本文介绍了 C# 匿名函数与 Lambda 表达式的基本概念、示例代码以及使用场景。希望通过阅读本文,读者能够更深入地理解匿名函数与 Lambda 表达式的区别和应用。