设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2294|回复: 8
打印 上一主题 下一主题

[Access本身] 【原创 / 文章】Dim的陷阱

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-19 01:35:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码一:

Dim x(100),y(100) As Byte

Call ReadBytes(x)



Public Sub ReadBytes(ByRef z() As Byte)

    'Do Nothing

End Sub

对以上代码进行编译,你会发现编译并不能通过。

代码二:

Dim x(100) As Byte,y(100) As Byte

Call ReadBytes(x)



Public Sub ReadBytes(ByRef z() As Byte)

    'Do Nothing

End Sub

调试以上代码,通过。

从C语言或其他语言转过来的程序员,很容易犯代码一的错误,因为在VB中:

Dim x(100),y(100) As Byte

等效于:

Dim x(100)

Dim y(100) As Byte

而不是:









Dim x(100) As Byte

Dim y(100) As Byte



而如果不作类型说明,那么VB就会给你使用默认的类型Variant。

这个错误非常隐蔽,而且并不常见在编程新手身上,而是有过很长时间其他语言编程经验的老程序员身上,希望这篇文章能够使你避免犯这样的错误。

[此贴子已经被作者于2005-9-21 23:04:03编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-8-19 04:22:00 | 只看该作者
谢谢
3#
发表于 2005-8-19 09:39:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
发表于 2005-8-19 17:07:00 | 只看该作者
谢谢提醒!
5#
发表于 2005-8-19 18:56:00 | 只看该作者
谢谢,总算明白了
6#
发表于 2005-8-20 00:16:00 | 只看该作者
谢谢
7#
发表于 2006-4-24 20:14:00 | 只看该作者
一定要顶!
8#
发表于 2006-8-4 19:42:00 | 只看该作者
顶!!!!!!!!!
9#
发表于 2009-10-24 15:20:10 | 只看该作者
谢谢提醒。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-31 03:12 , Processed in 0.111978 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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