在VB风格的语法中输出转义字符

类别:.NET开发 点击:0 评论:0 推荐:

     今天在用VS.Net 2003的Macro IDE写一个自动生成代码的宏的时候,意外发现VB中的转义字符和C风格的转义字符是不一样的.惭愧惭愧,因为以前没有这方面的应用,所以根本没注意到.
    以下为出错代码片断:

    Private PropertyString As String = _
        "public {1} {0}" + newline + _
        "\{" + newline + _
        "   get" + newline + _
        "    \{" + newline + _
        "       return {2};" + newline + _
        "   \}" + newline + _
        "   set" + newline + _
        "   \{" + newline + _
        "       if( value == {2} )" + newline + _
        "       \{" + newline + _
        "           return;" + newline + _
        "       \}" + newline + _
        "       {2} = value;" + newline + _
        "   \}" + newline + _
        "\}" + newline

    上述代码片断所完成的功能是根据获得的属性名称,属性类型和字段名称自动生成C#的公共属性代码.
    事情就这样发生了,按F5运行,弹出错误窗口说使用了错误的格式,我当时脑子没转过弯来,到底是错在哪乐?
    仔细看一下,一行行注释来运行,结果发现是\{的问题,我郁闷乐,难道转义字符不是这么写么?打开帮助的搜索窗口,查{,弹出一个错误窗口报告未能完成操作,查\{,报告未能完成操作,查"\{"还是未能完成操作,看着触目惊心的大红叉,我再查"输出 花括号", "输出 大括号",无结果.
    上Google,看到有篇帖子说ASP里的转义字符和C是不同的,那到底是什么呢?我更郁闷乐,在长久的郁闷之后,我忽然想起T-SQL语句里面对中括号[]的转义处理,是把[用[[]表示,VB里莫非也是类似的处理?
    经过我的尝试(完完全全是猜出来的,惭愧啊,VB的东西差不多忘光乐),发现在VB风格的语言(即VB,VBS,VBA,ASP,VB.Net之类)中进行的字符串输出时的一部分转义字符替换规则是:
    1. 使用{{ 输出 {
    2. 使用}} 输出 }
    3. 使用"" 输出 "
    4. ',~,$,%,^,\等传统C语法的需要转义的字符都可以直接输出
    呵呵,这几条规则只是我在Macro里面得到验证通过的,并没有真的去试验是不是所有VB风格的语言里都是这样,假如有朋友碰巧也为这个问题伤脑筋,那他可以看看这里扩展一下思路,不过要是有朋友完全照我说的去做出问题乐来找我,我...闪...先 :P

本文地址:http://com.8s8s.com/it/it42615.htm