using System;
class Program
{
static void Main()
{
// 使用Lambda表达式创建委托
Func<int, int, int> addDelegate = (a, b) => a + b;
// 调用委托
int result = addDelegate(3, 5);
Console.WriteLine($"相加结果: {result}");
}
}
Lambda表达式与匿名函数在这种场景下的联系与区别:
- 联系:
- 在C#中,Lambda表达式实际上是匿名函数的一种简洁写法。它们都允许在代码中定义一个没有显式命名的函数。在实现委托功能时,二者都可以用来提供一个可作为委托实例的代码块,以实现特定的功能逻辑,比如上述的加法运算。
- 区别:
- 语法简洁性:Lambda表达式语法更为简洁明了。例如,上述的Lambda表达式
(a, b) => a + b
,非常直观地表示了接受两个参数并返回它们相加结果的逻辑。而匿名函数的语法相对复杂,例如使用匿名函数实现相同功能可能像这样:delegate(int a, int b) { return a + b; }
。
- 类型推断:Lambda表达式在类型推断方面更为强大。编译器可以更方便地根据上下文推断出Lambda表达式的参数类型,所以很多时候无需显式声明参数类型。而匿名函数通常需要显式声明参数类型。