我有一个 StringBuilder 对象,想使用它的 Append() 方法将整个字符串添加到它:
所以我使用 "@" 并像这样复制粘贴了整个字符串,但它给出了很多错误,例如 "; expected ", "Invalid Expression '<'" 等
myString.Append(@"COPY-PASTED-THAT_WHOLE-STRING");
将此字符串添加到我的字符串生成器对象的正确方法是什么?
谢谢你。
即使@
为字符串加上前缀,您也需要转义任何"
字符,否则它们将被解释为字符串文字的结尾。
编辑:
例如
var entity = @"<!ENTITY xsd ""http://www.w3.org/2001/XMLSchema#"">";
"
要粘贴的字符串中的双引号 ( ) 需要通过替换为两个连续的双引号来进行转义,如""
. 这是一个使用技巧:
"
) 替换为两个双引号 ( ""
)@"…"
您的代码/文本编辑器中来自C# 文档:
在逐字字符串文字中,分隔符之间的字符被逐字解释,唯一的例外是 quote-escape-sequence。
您可以使用@
语法添加多行。但是您需要"
通过使用来转义字符串中的 s""
例如
@"<Ontology xmlns=""http://www.w3.org/2002/07/owl#"""
如果您不转义它们,C# 会将引号视为字符串的结尾。
正如其他人所说,一种选择是使用双双引号 ( ) 转义所有双引号"
( ""
)。
在将 XML 块添加为文字字符串时,我更喜欢使用单引号而不是双引号,因为它使代码更具可读性。只需将 XML 文件放入文本编辑器,然后用单引号 ( '
) 替换双引号上的所有内容。
另一种选择是,因为您的 XML 文字不是那么短,所以将其放入一个文件并在运行时读取该文件。
你也可以像这样逃离他们......
@"<Ontology xmlns=\"http://www.w3.org/2002/07/owl#\""