有没有办法在 c# 中使用带有lambda 表达式的可选参数(默认参数) ?我已经阅读了文档,但找不到任何可以说的方式。
为了说明,我可以定义使用可选参数来提供默认值的简单方法,如下所示:
void MyMethod(string arg = "default-value")
{
Console.WriteLine(arg);
}
我想知道的是我是否能够使用 lambda 表达式做同样的事情。
// gives a syntax error
Action<string> MyMethod = (arg = "default") => Console.WriteLine(arg);
我可以使用委托处理具有默认值的可选参数,但这似乎有点笨拙。
delegate void MyDelegate(string arg = "default");
MyDelegate MyMethod = arg => Console.WriteLine(arg);
或者,我可以检查 lambda 正文中的参数,例如...
Action<string> MyMethod = (arg) => Console.WriteLine(string.IsNullOrEmpty(arg) ?
"default" :
arg);
但这又显得有点笨拙。
是否可以使用可选参数在 c# 的 lambda 表达式中设置默认值?