Pete On Software

RSS Feed

C# 6 Features – String Interpolation

For this post in my series, I want to look at one of my favorite little time savers, String Interpolation. String Interpolation is basically when you put tokens into a string and those are replaced for you by the language. Previously, in C#, we might do one of the following things:

Sometimes, with a long string with a lot of tokens, this can get kind of unwieldy. And, if you reuse tokens (say, a line break, or the person’s name), it can be almost impossible to keep things straight. Other languages have had features like this for awhile.

Swift:

Ruby:

Now, in C# 6, we get that kind of clarity as well. The syntax calls for you to use a dollar sign ($) in front of the string and then use curly braces surrounding the variable reference in the string. Here is an example

New C# 6 String Interpolation:

In my opinion, that beats the pants off of string.Format(). Additionally, you can also reference class properties by the same syntax. Here is another example:

You can also express values from methods:

So, there you go. I can promise you that I’m going to use this instead of string.Format() in every project that is running the necessary framework versions.

2 Comments

mgroves  on May 14th, 2016

One thing that bit me with this is that this the newer C# features don’t seem to be available in Razor (yet?).

Pete  on May 15th, 2016

Matt,

I was able to get this to work a few ways in Razor using VS2015 and an MVC6 project.

I was able to do this
@Html.Raw($"{Environment.MachineName}")

and also define the variable like this:

@{
var machineName = $"{Environment.MachineName}";
}

and then just @machineName to get it to show up in line. I couldn’t just @ and then do it but by using the Html.Raw() or an intermediate variable, I was good. Maybe you can try that?

Leave a Comment