使用 $ 插值和 @ 编码进行字符串转义
String Escaping With $ Interpolation and @ Encoding
我正在尝试转义如下所示的内插字符串块中的 " 字符。
var name = "Mr. Roguers";
var htmlEmail = $@"
<p>Dear {name},</p>
<p>Please click this awesome <a href=\"google.com\">link.</a></p>
";
Console.WriteLine(htmlEmail);
我看了很多地方,任何人都可以提供一些方向或解决方案来使用 $ 和 @ 来避免这种情况。我希望我的代码像这样多行,以便阅读清晰,这就是为什么我有 @ 符号。我也想使用 $ 字符串插值。
此代码无法使用 .NET Core 2.2 进行编译
我正在 Visual Studio 我自己的解决方案中测试它,还有这个简单的例子我在 https://dotnetfiddle.net/
上测试它
使用@时,字符串中的双引号表示为""
:
var htmlEmail = $@"
<p>Dear {name},</p>
<p>Please click this awesome <a href=""google.com"">link.</a></p>
";
.NET Fiddle: https://dotnetfiddle.net/fESnd1
解释:
@ 使编译器按字面意思获取字符串而不是解释它们。允许在字符串文字中使用 @ 换行符,并且反斜杠 \
变为普通字符串字符而不是转义字符,导致例如@"\r\n"
是一个包含四个字符的字符串:\
、r
、\
和 n
。这使得有必要使用另一种方式来包含双引号,即成为 ""
.
参考: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim
我正在尝试转义如下所示的内插字符串块中的 " 字符。
var name = "Mr. Roguers";
var htmlEmail = $@"
<p>Dear {name},</p>
<p>Please click this awesome <a href=\"google.com\">link.</a></p>
";
Console.WriteLine(htmlEmail);
我看了很多地方,任何人都可以提供一些方向或解决方案来使用 $ 和 @ 来避免这种情况。我希望我的代码像这样多行,以便阅读清晰,这就是为什么我有 @ 符号。我也想使用 $ 字符串插值。
此代码无法使用 .NET Core 2.2 进行编译
我正在 Visual Studio 我自己的解决方案中测试它,还有这个简单的例子我在 https://dotnetfiddle.net/
上测试它使用@时,字符串中的双引号表示为""
:
var htmlEmail = $@"
<p>Dear {name},</p>
<p>Please click this awesome <a href=""google.com"">link.</a></p>
";
.NET Fiddle: https://dotnetfiddle.net/fESnd1
解释:
@ 使编译器按字面意思获取字符串而不是解释它们。允许在字符串文字中使用 @ 换行符,并且反斜杠 \
变为普通字符串字符而不是转义字符,导致例如@"\r\n"
是一个包含四个字符的字符串:\
、r
、\
和 n
。这使得有必要使用另一种方式来包含双引号,即成为 ""
.
参考: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/verbatim