C#的lambda表达式中的默认参数值

时间:2010-10-21 13:47:57

标签: c# lambda

下午好,

在C#中使用lambda表达式时,有人可以告诉我是否可以设置默认参数值吗?例如,如果我有代码

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

如何将IntTmp的默认值设置为,例如,两个?在方法中设置默认参数值的常用方法似乎不适用于这种表达式(我真的需要这种表达式)。

非常感谢。

1 个答案:

答案 0 :(得分:1)

除非你通过功能组合来实现,否则你真的不能这样做:

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

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

您也可以尝试修改SomeFunction以获取可为空的内容,但是您必须为值显式传递null并在方法体中检查它。