首页 >后端开发 >C++ >C# 字符串之前的 $ 符号是逐字字符串还是字符串插值?

C# 字符串之前的 $ 符号是逐字字符串还是字符串插值?

DDD
DDD原创
2025-01-04 22:07:38471浏览

Is the $ Symbol Before a C# String a Verbatim String or String Interpolation?

逐字字符串还是新功能?揭开字符串前 $ 的神秘面纱

您在使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn