Supongamos que tengo las siguientes expresiones:¿Cómo puedo combinar varias expresiones en un método rápido?
Expression<Action<T, StringBuilder>> expr1 = (t, sb) => sb.Append(t.Name);
Expression<Action<T, StringBuilder>> expr2 = (t, sb) => sb.Append(", ");
Expression<Action<T, StringBuilder>> expr3 = (t, sb) => sb.Append(t.Description);
me gustaría ser capaz de compilar estos en un método/delegar equivalente a lo siguiente:
void Method(T t, StringBuilder sb)
{
sb.Append(t.Name);
sb.Append(", ");
sb.Append(t.Description);
}
¿Cuál es la mejor manera de acercarse ¿esta? Me gustaría que funcione bien, idealmente con un rendimiento equivalente al método anterior.
ACTUALIZACIÓN Así, mientras que parece que no hay manera de hacerlo directamente en C# 3 ¿Hay una manera de convertir una expresión de IL para que pueda usarlo con System.Reflection.Emit?
Usted quiere ser capaz de escribir algo como: 'Expresión> combinedExperssion = expr1 + + expr2 expr3;'? –