No entiendo lo que está sucediendo aquí:¿Cómo se convierte implícitamente un Func <T> a la Expresión <Func<T>>?
Ambas líneas de compilación:
Func<object> func =() => new object();
Expression<Func<object>> expression =()=>new object();
pero esto no significa:
expression = func;
no hay un operador implícita en LambdaExpression
o Expression<TDelegate>
que convierte un delegado en la expresión, por lo que debe estar sucediendo algo más para que la asignación funcione. ¿Qué es?
Más [aquí] (http://msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic20). –
+1 para la explicación del objeto de apoyo y var. –
Como último, además, tendría que decidir * qué tipo de delegado * (o expresión-de-tipo-delegado) usar; no hay nada especial sobre 'Func <...>' etc. –