C# 我可以在逐字字符串文本中转义双引号吗?

C# 我可以在逐字字符串文本中转义双引号吗?,c#,string,escaping,literals,verbatim-string,C#,String,Escaping,Literals,Verbatim String,在C#中的逐字字符串文字(@“foo”)中,反斜杠不被视为转义符,因此使用\“获取双引号是行不通的。有没有办法获取逐字字符串文字中的双引号 不难理解,这是行不通的: string foo = @"this \"word\" is escaped"; 使用重复的双引号 @"this ""word"" is escaped"; 产出: 此“单词”已转义 使用双引号 string foo = @"this ""word"" is escaped"; 这将有助于澄清您可能遇到的任何问题: 以下是链

在C#中的逐字字符串文字(@“foo”)中,反斜杠不被视为转义符,因此使用\“获取双引号是行不通的。有没有办法获取逐字字符串文字中的双引号

不难理解,这是行不通的:

string foo = @"this \"word\" is escaped";

使用重复的双引号

@"this ""word"" is escaped";
产出:

此“单词”已转义

使用双引号

string foo = @"this ""word"" is escaped";

这将有助于澄清您可能遇到的任何问题:

以下是链接内容中的表格:

正规文字 逐字逐句 结果字符串
“你好”
@“你好”
Hello
“反斜杠:\\”
@“反斜杠:\”
反斜杠:\
“报价:\”
@“引号:”
Quote:“
“CRLF:\r\nPost CRLF”
@“CRLF:
发布CRLF”
CRLF:
发布CRLF

为了添加更多信息,您的示例将在不使用
@
符号的情况下工作(它防止使用\进行转义),如下所示:

string foo = "this \"word\" is escaped!";

它可以双向工作,但我更喜欢双引号样式,因为它更容易工作,例如,使用文件名(字符串中有大量\)。

GitHub中有一个关于更好地支持原始字符串文字的建议。一个有效的答案是鼓励C团队为该语言添加新功能(例如类似Python的三重引号)

如图所示,请参见:

简单的转义序列…按字面解释。只有引号转义序列(
“”
)不按字面解释;它会产生一个双引号。此外,如果是逐字插入的字符串大括号转义序列(
{{
}
)不按字面解释;它们产生单括号字符


我正在尝试使用@Html.Raw(),四个引号打断了我的字符串。您可以在不使用字符串文字的情况下使用它吗?似乎Html.Raw()会为您确保它是一个字符串……还可以将它与字符串插值结合使用:
$@“this”“{wordVar}”被转义”