Lambda表达式参数默认值
在C#12中,我们可以为Lambda表达式的参数定义默认值。这意味着我们可以在Lambda表达式中定义一个或多个参数的默认值,如果没有传递参数,则使用这些默认值。
# 语法
定义Lambda表达式参数的默认值与定义方法或本地函数参数的默认值的语法和规则相同。我们可以在参数名称后面使用等号 (=) 来指定参数的默认值。例如,下面是一个具有默认参数值的Lambda表达式的语法:
(parameter1 = defaultValue1, parameter2 = defaultValue2, ..., parameterN = defaultValueN) => { /* lambda expression body */ }
# 示例
下面是一个简单的Lambda表达式示例,其中我们定义了两个参数,并为其中一个参数定义了默认值:
// 定义一个具有默认参数值的Lambda表达式
Func<int, int, int> addNumbers = (x, y = 10) => x + y;
// 调用Lambda表达式,只传递一个参数
int result = addNumbers(5);
Console.WriteLine(result); // Output: 15
// 调用Lambda表达式,传递两个参数
int result2 = addNumbers(5, 20);
Console.WriteLine(result2); // Output: 25
在上面的示例中,我们定义了一个Lambda表达式,其中第二个参数 y 的默认值为 10。在第一个调用中,我们只传递一个参数,这意味着Lambda表达式将使用默认值计算结果。在第二个调用中,我们传递了两个参数,这意味着Lambda表达式将使用第二个参数的值计算结果。
# 注意事项
在Lambda表达式中定义默认参数值时需要注意以下几点:
- 定义默认参数值的参数必须是最后一个参数。例如,(x, y = 10, z)是无效的。
- 不能为一些参数指定默认值,而不为其他参数指定默认值。例如,(x = 10, y, z = 20)是无效的。
# 结论
C#12中的默认Lambda参数为我们提供了更大的灵活性,使我们能够在Lambda表达式中定义默认参数值。这样,我们就可以更方便地编写可重用的Lambda表达式,同时保持代码的可读性和可维护性。
上次更新: 2023/04/26, 22:10:06