如何在C#中的多行字符串声明中添加双引号字符?

76

如果我写了这样的代码:

string s = @"...."......";

它不起作用。


如果我尝试这样做:

string s = @"...\".....";

它仍然没有起作用。

在C#中如何向多行字符串声明中添加一个“字符”?

3个回答

184

试试这个:

string s = @"..."".....";

1
嗯,编译器现在没有抱怨了。 :) 但是它是如何工作的?当双引号在字符串声明内部时,它有一些特殊的含义吗? - User
10
处理字面字符串(以“@”为前缀的字符串)时,应该使用双引号来转义自身,而不是反斜杠。 - mqp
如何在保存到数据库时删除转义字符中的双引号?我只想删除用于转义的额外双引号,而不是两个。 - Anil Purswani
有趣的是,微软在CSV文件中使用JavaScript转义符\而不是RFC-4180规定的\,并且在DataFactory CSV设置中具有转义字符串选择\,而应始终为标准的" - Pawel Cioch

10

当你使用string.Format时,如果想要包含一个字面上的左大括号 { 或者右大括号 } 而不是表示一个参数,则可以使用双字符。例如:

string jsString = string.Format(
    "var jsonUrls = {{firstUrl: '{0}', secondUrl: '{1}'}};",
    firstUrl,
    secondUrl
    );

我刚才在想其他字符。你猜对了。谢谢。 :) - User

-3

字符串 s = "...\"....."; 应该可以正常工作

@符号可以禁用转义字符,因此如果要使用 \" ,则不需要@符号

个人认为你应该选择

string s = string.format("{0}\"{1},"something","something else"); 

从长远来看,这会让事情变得更容易。


不需要格式化任何内容。只是在代码中的一个多行SQL查询,我正在尝试修复它。 - User
抱歉,但这并没有回答问题。 - Stephen Lujan
他们问是否有一种方法可以忽略字符串中的转义字符,那就是我的回答。 - Crash893
这似乎并没有回答问题,问题是关于多行字符串的。 - ANeves
@ANeves,Stephen Lujan已经提到了这一点,但下次我回到2017年时,我会确保告诉自己。 - Crash893

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接