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

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航