C# C代码段中方括号的转义码是什么?
尝试编写一个VS2010 C#代码段,其中包含一个右方括号作为新对象数组分配的一部分,基本上是这样:C# C代码段中方括号的转义码是什么?,c#,escaping,code-snippets,C#,Escaping,Code Snippets,尝试编写一个VS2010 C#代码段,其中包含一个右方括号作为新对象数组分配的一部分,基本上是这样: <Code Language="CSharp"> <![CDATA[public void $MethodName$($parameters$) { if(InvokeRequired) { ZPICD icdzp = new ZPICD($MethodName); Invoke(icdzp, new object[] { });
<Code Language="CSharp">
<![CDATA[public void $MethodName$($parameters$)
{
if(InvokeRequired)
{
ZPICD icdzp = new ZPICD($MethodName);
Invoke(icdzp, new object[] { });
}
else
{
$selected$
}
}
public delegate void ZPICD();]]]>
</Code>
这方面的内容似乎不多,bing和google都给出了一些搜索结果,比如:
C#代码段中的转义方括号
C#代码段方括号
C#代码段方括号不需要方括号转义码,解析器似乎通过代码段的主体跟踪方括号深度级别。问题是缺少替换令牌描绘器。应该以
]]>
结束。我在那里看到了一个额外的]
。您是对的,我在第二个$MethodName$替换令牌的末尾也缺少了一个$。唯一可能出现问题的情况是,如果C代码包含准确的三字符序列]>
,并且没有空格。因此,如果代码有类似于if(list[index[i]]>threshold){…}
的内容,那将是一个问题。但如果插入空格,就不会有问题了。另见。整洁,谢谢。我认为关闭标记应该由任何工作组定义为]CDATA]>以帮助避免完全不可能的歧义