Office中国论坛/Access中国论坛

标题: 【原创 / 文章】Dim的陷阱 [打印本页]

作者: LucasLynn    时间: 2005-8-19 01:35
标题: 【原创 / 文章】Dim的陷阱
代码一:

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编辑过]


作者: pxsj    时间: 2005-8-19 04:22
谢谢
作者: esmile    时间: 2005-8-19 09:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: sun2465    时间: 2005-8-19 17:07
谢谢提醒!
作者: 红寺    时间: 2005-8-19 18:56
谢谢,总算明白了
作者: 28795277    时间: 2005-8-20 00:16
谢谢
作者: qlm    时间: 2006-4-24 20:14
一定要顶!
作者: 古老的龙    时间: 2006-8-4 19:42
顶!!!!!!!!!
作者: chaojianan    时间: 2009-10-24 15:20
谢谢提醒。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3