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


534

在C#中的逐字字符串文字(@“ foo”)中,反斜杠不被视为转义符,因此执行\“来获取双引号是行不通的。有什么方法可以在逐字字符串文字中获取双引号吗? ?

可以理解,这是行不通的:

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

Answers:


870

使用重复的双引号。

@"this ""word"" is escaped";

输出:

this "word" is escaped

我正在尝试使用@ Html.Raw()并且四重引号破坏了我的字符串
JoshYates1980 2014年

1
您可以在没有字符串文字的情况下使用它吗?似乎Html.Raw()会确保为您提供一个字符串...
Myles

2
也可以将其与字符串插值结合使用:$@"this ""{wordVar}"" is escaped";
fdelia

113

使用双引号。

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

95

为了添加更多信息,您的示例可以在没有@符号的情况下工作(它可以防止使用\进行转义),方法是:

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

它将同时起作用,但是我更喜欢双引号样式,因为它更易于使用,例如,使用文件名(字符串中带有很多\)。


81

这应该有助于清除您可能遇到的任何问题:c#文字

这是链接内容的表格:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.