Ausführen LambdaExpression und get zurückgegebene Wert als Objekt

Ist es eine saubere Art und Weise, dies zu tun?

Expression<Func<int, string>> exTyped = i => "My int = " + i;
LambdaExpression lambda = exTyped;

//later on:

object input = 4;
object result = ExecuteLambdaSomeHow(lambda, input);
//result should be "My int = 4"

Diese sollten für die verschiedenen Arten.

  • Warum nicht einfach var func = new Func<int, string>(x => { return string.Format("My int = {0}", x); });?
  • Ich nehme an, die Frage ist vereinfacht.
  • Macht Sinn, sonst eine einfache string.Format() würde es tun 🙂
  • Warum wollen Sie die späte Bindung verwenden (DynamicInvoke). Wenn es möglich ist, würde ich versuchen dieses zu vermeiden (weil Sie keine compile-Zeit überprüfen; es ist also sehr viel möglich, erhalten Sie Laufzeitfehler).
  • sehr guter Punkt! Ich aktualisiert meine Antwort entsprechend.
InformationsquelleAutor Joel | 2013-07-31
Schreibe einen Kommentar