number interpolacion cadenas antes c# .net visual-studio string-interpolation

c# - interpolacion - La interpolación de cadenas no funciona con.NET Framework 4.6



string.format c# decimal (2)

La interpolación de cadenas es de hecho una característica de C # 6.0, pero C # 6 no se limita a VS2015.

Puede compilar aplicaciones que aprovechan las características del lenguaje C # 6.0 en VS2013 dirigiéndose a la plataforma del compilador de Roslyn a través del paquete NuGet de Microsoft.Net.Compilers .

Mi experiencia ha sido que, después de instalar este paquete, los mensajes de error durante la compilación pueden ser un poco confusos. Si tiene errores de compilación que no están relacionados con C # 6, se le mostrarán esos mensajes de error más los mensajes de error relacionados con la sintaxis no válida relacionada con cualquier característica de C # 6 que haya usado a pesar del hecho de que ahora está apuntando a un compilador que los admite.

Por ejemplo...

public class HomeController : Controller { public ActionResult Index() { ViewBag.Title = "Home Page"; var example = $"{ViewBag.Title}"; ImASyntaxErrorWhatAmIWheresMySemicolonLOL return View(); } }

resultará en 4 mensajes de error durante la compilación:

Error 1 carácter inesperado ''$''

Error 2 término de expresión no válido ''''

Error 3; esperado

Error 4; esperado

Los primeros 3 errores aquí se relacionan con la línea que usa la interpolación de cadenas, solo la última ; expected ; expected error ; expected es un problema. Elimine la línea ofensiva justo antes de que devolvamos la View y los errores de compilación de interpolación de cadenas desaparecen y todo está bien.

Acabo de instalar .NET Framework 4.6 en mi máquina y luego creé una aplicación de consola dirigida a .NET Framework 4.6 con Visual Studio 2013.

Escribí lo siguiente en el método Main :

string test = "Hello"; string format = $"{test} world!";

Pero esto no se compila. Hacer lo mismo en Visual Studio 2015 funciona.
¿Por qué?


La interpolación de cadenas es una característica de C # 6.0, no una de .NET Framework 4.6. VS 2013 no es compatible con C # 6, pero VS 2015 sí.