Así que cuando escribo algo como esto¿Cuál es la diferencia entre la nueva Acción() y una lambda?
Action action = new Action(()=>_myMessage = "hello");
Refactor Pro! Destaca esto como una creación de delegado redundante y me permite acortarlo a
Action action =() => _myMessage="hello";
Y esto generalmente funciona genial. Generalmente, pero no siempre. Por ejemplo, burla de Rhino tiene un método de extensión llamado Do:
IMethodOptions<T> Do(Delegate action);
Aquí, pasando en la primera versión trabajos, pero el segundo no lo hace. ¿Qué está pasando exactamente debajo de las coberturas aquí?
Su segundo bloque de código no compila. Aparece el mensaje "No se puede asignar la expresión lambda a una variable local implícitamente tipada". Pero, si reemplazo "var" por "Acción", lo hace. –
Sí, tienes razón, no se puede asignar a una variable implícitamente tipada, la editaré. –