c# - sintaxis - ¿Por qué se compila el siguiente código sin errores?
error de compilacion error de sintaxis vba (2)
Estaba jugando un poco con mi proyecto de C # y me sorprendió ver que este código se compila:
var a = new Action<string>(ref b => b = "hello");
Dándole la vuelta al revés, como Action<string> a = ref b => b = "hello";
dará un error sintáctico en ''ref''.
Efectivamente, copiar y pegar el fragmento en http://dotnetfiddle.net da un error de compilación:
A ref or out argument must be an assignable variable
¿He encontrado un error en el compilador? (Estoy usando VS 2015 y C # 6).
EDIT: Acabo de cambiar al compilador de Roslyn en .NET Fiddle, todavía emite el mismo error.
Suena como un error de compilación en VS2015. Esto se archiva como https://github.com/dotnet/roslyn/issues/6646
pienso en primera Action
var a = acción nueva (ref b => b = "hola");
ref
es referencia para la acción completa b=>b = "hello"
mientras que en segundo
Acción a = ref b => b = "hola";
ref
es la referencia para b
en ref b => b = "hola"
revisa el fiddle abajo