.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在VB风格的语法中输出转义字符

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

     今天在用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




相关文章

相关软件