Wie übergeben Sie die Aktion mit zwei Parametern, die Verwendung von Lambda-Ausdruck der Methode?
Habe ich eine Klasse, die eine Aktion im Konstruktor.
Beispiel:
public CustomClass(Action<Path> insert)
{
//logic here...
}
Ich derzeit instanziieren dieser Klasse mit dem folgenden code-Zeile:
var custom = new CustomClass((o) => LayoutRoot.Children.Add(o));
Will ich ändern, die benutzerdefinierte Klasse um einen zusätzlichen Konstruktor, wie die folgenden:
public CustomClass(Action<Path, TextBlock> insert)
{
//logic here...
}
Jedoch meines Wissens von lambda-Ausdrücken ist ziemlich einfach, so dass ich kann nicht herausfinden, wie zu instanziieren Sie die benutzerdefinierte Klasse übergeben zwei Parameter in der Aktion, um den neuen Konstruktor.
Jegliche Hilfe würde sehr geschätzt werden.
Dank.
- Für Ihre zukünftige Referenz, die syntax für verschiedene Formen von lambda-Ausdruck ist beschrieben in Abschnitt 7.14 der C# - Spezifikation.
- Natürlich alle C# - Entwickler wird gelesen haben das spec schon.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Auftrag zu übergeben 2 Parameter an die Aktion, nur definieren Sie die insert-Aktion als
Action<T,T2>
und wenn Sie nennen es so machen:In Lamba übergeben Sie zwei Parameter als solche:
Action
Entweder du fragst
oder
Der zweite Konstruktor wird ein Delegat, der erhält 2 Parameter. So können Sie etwas tun, wie
Können Sie erstellen, die einen lambda-Ausdruck, der braucht mehr als ein parameter um die parameter-Liste mit Klammern und Kommas trennen Sie die Parameter:
Wenn Sie brauchen, um mehr als eine Aussage in einen lambda-Ausdruck können Sie umgeben den Körper des lambda-Ausdrucks mit geschweiften Klammern:
Erfahren Sie mehr über lambda-syntax hier auf der MSDN-Website.