下午好,

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

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

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

非常感谢你。

最佳答案

除非通过功能组合才能做到,否则您将无法做到:

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

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

您还可以尝试将SomeFunction修改为可为null的值,但随后您必须显式传递null作为值,并在方法主体中检查该值。

关于c# - C#的lambda表达式中的默认参数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3988111/

10-17 02:34