a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 82|回复: 0

[Visual Basic] VB中的冒号

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
关于VB中的冒号,给许多人的印象都是:“一行可书写几句语句”。这么说是对的,但是有一种情况是不对的,那就是在条件语句中。这也是做一个VB项目升级的时候遇到,因为这个问题我查了好长时间程序,一直在找VB的中的效果是如何实现的呢?现在发现那是一个非常大的bug。我觉得这不是程序员的错误,应该是VB语法上的漏洞。如果有理解不对的地方欢迎大家指教。
% \& o0 r, f( @8 S# C9 w7 F0 D* m  看一个例子吧:
+ M3 W$ f4 Q& p  1 If Row1 = -1 Then Row1 = 0: If Row2 = -1 Then Row2 = .MaxRows9 C/ V. D1 j/ H6 ~5 L; a' v
  我们一般的理解是执行完第一if语句接着将执行第二个语句,应该是下面的样子:
# n$ m7 ~  ]2 d8 \  If Row1 = -1 Then Row1 = 0
* b' Y* d9 b  T3 I( H( F+ A  If Row2 = -1 Then Row2 = .MaxRows5 b3 l: |0 L& }: n" ]' B
  但是事实上不是这样的,变成下面的形式了。这样的形式并不是我们想要的结果。: {: P, c2 p# Q2 Y
  If Row1 = -1 Then
7 E, [( @' B- `/ L  Row1 = 0
- |, ]  J( x* E7 ~: w  If Row2 = -1 Then Row2 = .MaxRows
$ H8 W* K( q8 p" d6 \; C, g- [- J* _2 V( i  End If9 R$ @0 a3 @; r9 U7 `
  我想这个语法对于不熟悉VB的人做代码移植应该是一个非常隐蔽的bug。希望能够对大家有帮助。
5 d8 p3 Q' P/ v* v  这只是我个人的见解,如果有不同意见的欢迎一起交流!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 11:34 , Processed in 0.228769 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表