I just installed the .NET Framework 4.6 on my machine and then created a ConsoleApplication targeting .NET Framework 4.6 with Visual Studio 2013.
I wrote the following in the Main
method:
string test = "Hello";
string format = $"{test} world!";
But this does not compile. Doing the same in Visual Studio 2015 works.
Why?
String interpolation is indeed a C# 6.0 feature, but C# 6 isn't limited to VS2015.
You can compile applications that leverage C# 6.0 language features in VS2013 by targeting the Roslyn compiler platform via the
Microsoft.Net.Compilers
NuGet package.My experience has been that, after this package is installed, error messages during compilation can be a little misleading. If you have compile errors that are not C# 6 related, you will be shown those error messages plus error messages regarding invalid syntax relating to any C# 6 features you've used despite the fact that you're now targeting a compiler that supports them.
For instance...
will result in 4 error messages during compilation:
The first 3 errors here relate to the line that uses string interpolation, only the last
; expected
error is a problem. Remove the offending line right before we return theView
and the string interpolation compile errors disappear and all is well.String interpolation is a C# 6.0 feature, not one of .NET Framework 4.6. VS 2013 doesn't support C# 6 but VS 2015 does.