$
是String.Format
C#6的新功能,它是字符串插值的简写形式,并且与字符串插值一起使用。在您的情况下,它什么也不string.Format()
做,就像什么也不做一样。
当用于参考其他值来构建字符串时,它是独立存在的。以前必须这样写:
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);
现在变成:
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = $"{anInt},{aBool},{aString}";
还有一种替代方法-鲜为人知-使用字符串内插的形式$@
(两个符号的顺序很重要)。它允许@""
混合字符串的功能$""
以支持字符串插值,而无需\\
整个字符串。所以下面两行:
var someDir = "a";
Console.WriteLine($@"c:\{someDir}\b\c");
将输出:
c:\a\b\c