默认参数值表达式
问题描述:
下午好,默认参数值表达式
有人可以告诉我,如果我能在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值,并检查该在方法体中。
+0
我不记得做过这样的事情,而且看起来很合理,但在另一方面,我宁愿避免使用它,以避免为同样的事情制定多种方法。无论如何谢谢你! – Miguel 2010-10-21 14:00:11
您可能需要使用.NET 4.0 http://msdn.microsoft.com/en-us/library/dd264739.aspx – hunter 2010-10-21 13:56:18