我打算使用逐字字符串,但我错误地键入$而不是@。
$
@
但是编译器没有给我任何错误,并且编译成功。
我想知道它是什么,它做什么。我搜索了它,但找不到任何东西。
但是,它不像逐字字符串,因为我不会写:
string str = $"text\";
有谁知道$字符串在C#中代表什么。
string str = $"text";
我正在使用Visual Studio 2015 CTP。
$是String.FormatC#6的新功能,它是字符串插值的简写形式,并且与字符串插值一起使用。在您的情况下,它什么也不string.Format()做,就像什么也不做一样。
String.Format
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