c# visual-studio visual-studio-2015 roslyn

c# - ¿Por qué este código falla Visual Studio 2015?



visual-studio visual-studio-2015 (1)

Este es un github.com/dotnet/roslyn/issues/24978 . Este error afectará a cualquier versión de Visual Studio que use Roslyn.

Si estoy interpretando VersionOf.net correctamente, la primera versión de Visual Studio con Roslyn incorporado es 2015. Antes de ese momento, creo que solo estaba disponible como una extensión. Por lo tanto, Visual Studio 2013 y anteriores no deben verse afectados.

Se debe arreglar en el lanzamiento del hito 16 . En este momento, ese lanzamiento no está programado.

Debido a que este es un error en Roslyn, puede "evitarlo" editando y compilando el código que contiene la unsafe struct en una versión anterior de Visual Studio, una que es anterior a Roslyn. Visual Studio 2012 debería funcionar. Luego puede usar el archivo .DLL resultante en su software actual.

Una solución no verificada está disponible si usted mismo construye Roslyn desde esta rama . El arreglo se realizó en este commit .

Por alguna razón, incluso tanto como escribir esto en un archivo C # en Visual Studio es suficiente para que se bloquee instantáneamente. ¿Por qué?

unsafe struct node { node*[] child; }

Parece que ocurre cuando el IDE comienza a colorear palabras clave y similares.

Intentarlo en TIO escupe csc.exe exited with code 1 que no es muy útil.

Si bien las declaraciones de matriz en C # son diferentes a las de C / C ++, parece que lo anterior debería ser perfectamente válido. ¿Por qué no lo es y por qué se bloquea Visual Studio?

Mi versión de Visual Studio es 14.0.23107.