Можно ли использовать необязательные параметры / параметры по умолчанию в лямбда-выражении в c #?
Есть ли способ использоватьнеобязательные аргументы (параметры по умолчанию) слямбда-выражения в с #? Я прочитал документацию, но ничего не могу сказать так или иначе.
Чтобы проиллюстрировать это, я могу определить простой метод, который использует необязательный аргумент для предоставления значения по умолчанию, например:
void MyMethod(string arg = "default-value")
{
Console.WriteLine(arg);
}
Я хочу знать, могу ли я сделать то же самое, используя лямбда-выражение.
// gives a syntax error
Action MyMethod = (arg = "default") => Console.WriteLine(arg);
Я могу работать с необязательным параметром со значением по умолчанию, используя делегат, но это кажется немного неуклюжим.
delegate void MyDelegate(string arg = "default");
MyDelegate MyMethod = arg => Console.WriteLine(arg);
В качестве альтернативы я мог бы проверить параметр в теле лямбды, что-то вроде ...
Action MyMethod = (arg) => Console.WriteLine(string.IsNullOrEmpty(arg) ?
"default" :
arg);
Но опять же это кажется немного неуклюжим.
Можно ли использовать необязательные параметры для установки значения по умолчанию в лямбда-выражении в c #?