Значения параметров по умолчанию в лямбда-выражениях C # - PullRequest
7 голосов
/ 21 октября 2010

Добрый день,

Может кто-нибудь сказать, могу ли я установить значения параметров по умолчанию при использовании лямбда-выражений в C #?Например, если у меня есть код

public static Func<String, Int32, IEnumerable<String>> SomeFunction = (StrTmp, IntTmp) => { ... },

, как я могу установить значение по умолчанию IntTmp, например, два?Обычный способ установки значений параметров по умолчанию в методе, по-видимому, не работает с выражениями такого типа (и мне здесь действительно нужен один из них).

Большое спасибо.

1 Ответ

1 голос
/ 21 октября 2010

Вы действительно не можете, если вы не сделаете это с помощью композиции функций:

public static Func<String, Int32, IEnumerable<String>> SomeFunction = 
                                          (StrTmp, IntTmp) => { ... };

public static Func<String, IEnumerable<String>> SomeFunctionDefaulted =
                                  strTmp => SomeFunction(strTmp, 2);

Вы также можете попробовать изменить SomeFunction, чтобы получить обнуляемое значение, но тогда вам придется явно передать значение null для значения и проверить длячто в теле метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...