C# 面试题
目录

C# 中匿名方法和 Lambda 表达式的用法

· 约 3 分钟读完 · 第 18 / 183 章

推荐答案

本题详细解读

匿名方法

匿名方法是在 C# 2.0 中引入的,允许你在不定义命名方法的情况下直接定义一个方法体。匿名方法通常用于委托(Delegate)中,特别是在需要传递一个简单的方法时。

语法

示例

在这个示例中,printMessage 是一个 Action<string> 类型的委托,它接受一个 string 类型的参数。匿名方法通过 delegate 关键字定义,并在方法体中打印传入的消息。

Lambda 表达式

Lambda 表达式是在 C# 3.0 中引入的,它提供了一种更简洁的方式来定义匿名方法。Lambda 表达式通常用于 LINQ 查询、事件处理程序以及其他需要传递简单方法的场景。

语法

示例

在这个示例中,printMessageLambda 是一个 Action<string> 类型的委托,它接受一个 string 类型的参数。Lambda 表达式通过 => 符号定义,并在表达式体中打印传入的消息。

匿名方法与 Lambda 表达式的区别

  1. 语法简洁性:Lambda 表达式通常比匿名方法更简洁,尤其是在方法体较短的情况下。
  2. 类型推断:Lambda 表达式支持类型推断,而匿名方法需要显式指定参数类型。
  3. 适用场景:Lambda 表达式更常用于 LINQ 查询和函数式编程,而匿名方法在早期版本的 C# 中更为常见。

总结

匿名方法和 Lambda 表达式都是 C# 中用于定义匿名函数的方式,Lambda 表达式在语法上更为简洁,并且在现代 C# 编程中更为常用。