32

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?

2
  • 4
    You need VS2015, which rather fortunately for you is due to be released today! Commented Jul 20, 2015 at 11:06
  • 1
    @DavidArno You can use C#6 w/ VS2013, you just need a NuGet package. See my answer below. Commented Oct 16, 2015 at 20:50

2 Answers 2

52

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.

Sign up to request clarification or add additional context in comments.

Comments

29

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...

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

will result in 4 error messages during compilation:

Error 1 Unexpected character '$'

Error 2 Invalid expression term ''

Error 3 ; expected

Error 4 ; expected

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 the View and the string interpolation compile errors disappear and all is well.

1 Comment

See this answer for more information regarding the NuGet package for Rosyln in VS2013.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.