Cool feature. I just want to point out the emphasis on why this is better than string.format if it is not apparent to some people.
I read someone saying order string.format to "{0} {1} {2}" to match the parameters. You are not forced to order "{0} {1} {2}" in string.format, you can also do "{2} {0} {1}". However, if you have a lot of parameters, like 20, you really want to sequence the string to "{0} {1} {2} ... {19}". If it is a shuffled mess, you will have a hard time lining up your parameters.
With $, you can add parameter inline without counting your parameters. This makes the code much easier to read and maintain.
The downside of $ is, you cannot repeat the parameter in the string easily, you have to type it. For example, if you are tired of typing System.Environment.NewLine, you can do string.format("...{0}...{0}...{0}", System.Environment.NewLine), but, in $, you have to repeat it. You cannot do $"{0}" and pass it to string.format because $"{0}" returns "0".
On the side note, I have read a comment in another duplicated tpoic. I couldn't comment, so, here it is. He said that
string msg = n + " sheep, " + m + " chickens";
creates more than one string objects. This is not true actually. If you do this in a single line, it only creates one string and placed in the string cache.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
All of them return a string and only creates one value in the cache.
On the other hand:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
Creates 4 different values in the cache because there are 4 ";".
Thus, it will be easier to write code like the following, but you would create five interpolated string as Carlos Muñoz corrected:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
This creates one single string in the cache while you have very easy to read code. I am not sure about the performance, but, I am sure MS will optimize it if not already doing it.