【发布时间】:2015-03-05 19:23:08
【问题描述】:
我想从字符串中删除这个子字符串:
<ArrayOfSiteQuery xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS">
意识到它充满了时髦,我认为逐字逐句可以解决所有问题:
String messedUpJunk = @"<ArrayOfSiteQuery xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS">";
...但是,用迷失太空中的机器人来解释,它不会计算(编译);我在第一个“http”上得到“; 预期”。
我可以通过转义引号使其可编译:
String messedUpJunk = "<ArrayOfSiteQuery xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS\">";
...但是如果不是逐字逐句,逐字有什么用呢?
【问题讨论】:
-
想一想,如果您不转义
",编译器怎么可能知道您的字符串文字的开始和结束位置? -
我认为逐字化应该只是告诉编译器“忘记试图弄清楚这一点 - 只需将内引号和外引号内的所有内容视为一个你不应该混淆或尝试解析的字符串。”
标签: c# escaping quotes verbatim-string