1

我有一个 StringBuilder 对象,想使用它的 Append() 方法将整个字符串添加到它:

在此处输入图像描述

所以我使用 "@" 并像这样复制粘贴了整个字符串,但它给出了很多错误,例如 "; expected ", "Invalid Expression '<'" 等

myString.Append(@"COPY-PASTED-THAT_WHOLE-STRING");

将此字符串添加到我的字符串生成器对象的正确方法是什么?

谢谢你。

4

5 回答 5

6

即使@为字符串加上前缀,您也需要转义任何"字符,否则它们将被解释为字符串文字的结尾。

编辑:

例如

var entity = @"<!ENTITY xsd ""http://www.w3.org/2001/XMLSchema#"">";
于 2012-08-08T14:47:10.057 回答
3

"要粘贴的字符串中的双引号 ( ) 需要通过替换为两个连续的双引号来进行转义,如"". 这是一个使用技巧:

  • 将您的字符串粘贴到记事本的新实例中
  • 将所有双引号 ( ") 替换为两个双引号 ( "")
  • 选择并将记事本中的内容复制回剪贴板
  • 将其粘贴到@"…"您的代码/文本编辑器中

来自C# 文档

在逐字字符串文字中,分隔符之间的字符被逐字解释,唯一的例外是 quote-escape-sequence

于 2012-08-08T14:58:57.927 回答
1

您可以使用@语法添加多行。但是您需要"通过使用来转义字符串中的 s""

例如

@"<Ontology xmlns=""http://www.w3.org/2002/07/owl#"""

如果您不转义它们,C# 会将引号视为字符串的结尾。

于 2012-08-08T14:49:48.463 回答
1

正如其他人所说,一种选择是使用双双引号 ( ) 转义所有双引号"( "")。

在将 XML 块添加为文字字符串时,我更喜欢使用单引号而不是双引号,因为它使代码更具可读性。只需将 XML 文件放入文本编辑器,然后用单引号 ( ') 替换双引号上的所有内容。

另一种选择是,因为您的 XML 文字不是那么短,所以将其放入一个文件并在运行时读取该文件。

于 2012-08-08T14:54:13.217 回答
1

你也可以像这样逃离他们......

@"<Ontology xmlns=\"http://www.w3.org/2002/07/owl#\""
于 2012-08-08T16:56:25.403 回答