逐字字符串还是新功能?揭开字符串前 $ 的神秘面纱
您在使用 Visual Studio 2015 CTP 时偶然发现了一个奇怪的现象。您没有使用 @ 逐字字符串,而是无意中键入了 $,但编译器没有错误地响应。本文旨在阐明 C# 中字符串之前 $ 的作用。
$ 字符是 String.Format 的快捷方式,它在字符串插值中起着至关重要的作用,这是 C# 6 中引入的一项新功能。 ,在您的具体用法中,它本质上成为一个占位符,反映了 string.Format() 的功能。
当 $ 通过引用其他值来促进字符串构造时,$ 的真正威力就会显现出来。考虑一个场景,您有以下变量:
var anInt = 1; var aBool = true; var aString = "3";
过去,您会依赖 String.Format() 来组装格式化字符串:
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);
带有字符串插值,这个过程变得毫不费力:
var formated = $"{anInt},{aBool},{aString}";
此外,C# 提供了一种使用 $@ 的替代插值语法。这允许无缝集成逐字字符串功能和字符串插值,而无需转义字符。例如:
var someDir = "a"; Console.WriteLine($@"c:\{someDir}\b\c");
此代码的输出将是:
c:\a\b\c
以上是C# 字符串之前的 $ 符号是逐字字符串还是字符串插值?的详细内容。更多信息请关注PHP中文网其他相关文章!