2010-10-21 6 views
7

Guten Tag,Standardparameterwerte in C# 's Lambda-Ausdrücke

Kann mir bitte jemand sagen, ob ich Standard-Parameterwerte einstellen, wenn in C# Lambda-Ausdrücke verwenden? Zum Beispiel, wenn ich den Code

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

, wie ich IntTmp Standardwert s‘kann festlegen, beispielsweise zwei? Die übliche Art, Standard-Parameterwerte in einer Methode zu setzen, scheint bei dieser Art von Ausdrücken nicht zu funktionieren (und ich brauche wirklich eine dieser Art hier).

Vielen Dank.

+0

Sie müssen möglicherweise verwenden .NET 4.0 http://msdn.microsoft.com/en-us/library/dd264739.aspx – hunter

Antwort

1

wirklich können Sie nicht, wenn Sie es über Zusammensetzung von Funktionen zu tun:

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

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

Sie könnten auch versuchen, Einefunktion Modifizieren eines Nullable-nehmen, aber dann würden Sie explizit null übergeben für einen Wert haben und prüfen, ob die im Methodenkörper.

+0

Ich erinnerte mich nicht daran, so etwas zu tun, und es scheint sehr vernünftig, aber auf der Andererseits würde ich es vermeiden, es zu benutzen, um nicht viele Methoden für die gleiche Sache zu haben. Vielen Dank trotzdem! – Miguel