$在字符串前是什么意思?

我打算使用逐字字符串,但我错误地键入$而不是@

但是编译器没有给我任何错误,并且编译成功。

我想知道它是什么,它做什么。我搜索了它,但找不到任何东西。

但是,它不像逐字字符串,因为我不会写:

string str = $"text\";

有谁知道$字符串在C#中代表什么。

string str = $"text";

我正在使用Visual Studio 2015 CTP。

回答:

$String.FormatC#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

以上是 $在字符串前是什么意思? 的全部内容, 来源链接: utcz.com/qa/418717.html

回到顶部