在string中使用双引号

双引号可以像这样转义:

string test = @"He said to me, ""Hello World"". How are you?"; 

但是这涉及添加字符"的string。是否有一个C#函数或其他方法来转义双引号,以便不需要更改string?

没有。

既可以使用逐字string文字,也可以跳过"使用反斜杠”。

 string test = "He said to me, \"Hello World\" . How are you?"; 

这个string在任何情况下都没有改变 – 它里面只有一个转义字符" ,这只是告诉C#字符是string的一部分而不是string终止符。

你可以用任何方式使用反斜杠。

 string str = "He said to me, \"Hello World\". How are you?"; 

它打印;

 He said to me, "Hello World". How are you? 

这是完全相同的打印;

 string str = @"He said to me, ""Hello World"". How are you?"; 

这是一个DEMO

"仍然是你的string的一部分。

MSDN中检查Escape SequencesString literals

在C#中,您可以使用反斜杠将特殊字符添加到您的string中。 例如,把“,你需要写”。 使用反斜杠写有很多字符:带有数字的反斜杠:

  • \ 000 null
  • \ 010退格
  • \ 011水平制表符
  • \ 012新线
  • \ 015回车
  • \ 032替代品
  • \ 042双引号
  • \ 047单引号
  • \ 134反斜杠
  • 140重音符

反斜杠与其他字符

  • 一响(警戒)
  • \ b退格
  • \ Formfeed
  • \ n新行
  • \ r回车
  • \ t水平标签
  • \ v垂直标签
  • 单引号
  • “双引号
  • \反斜杠
  • \? 字面问号
  • \ ooo八进制符号的ASCII字符
  • \ x hh以hex表示法的ASCII字符
  • \ x hhhhhex符号的Unicode字符,如果此转义序列用于宽字符常量或Unicodestring文字中。 例如,WCHAR f = L'\ x4e00'或WCHAR b [] = L“其中一个汉字是\ x4e00”。

你误解了逃跑。

额外的"字符是string文字的一部分;它们被编译器解释为单个字符"

你的string的实际价值仍然是He said to me , "Hello World".How are you ? ,你会看到如果你在运行时打印它。

请解释你的问题。 你说:

但是这涉及到添加字符“的string。

这是什么问题? 你不能inputstring foo = "Foo"bar""; ,因为这会调用一个编译错误。 至于增加的部分,在string大小方面是不正确的:

 @"""".Length == "\"".Length == 1