$在字符串前是什么意思?
我打算使用逐字字符串,但我错误地键入$
而不是@
。
但是编译器没有给我任何错误,并且编译成功。
我想知道它是什么,它做什么。我搜索了它,但找不到任何东西。
但是,它不像逐字字符串,因为我不会写:
string str = $"text\";
有谁知道$
字符串在C#中代表什么。
string str = $"text";
我正在使用Visual Studio 2015 CTP。
回答:
$
是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
以上是 $在字符串前是什么意思? 的全部内容, 来源链接: utcz.com/qa/418717.html