作者clifflu ( 雪宝也要变强喔)
看板Visual_Basic
标题Re: [VB6 ] 一个问题烦请解答
时间Tue Jul 26 17:24:44 2005
※ 引述《redclock (红色时锺)》之铭言:
: ※ 引述《redclock (红色时锺)》之铭言:
: 不过我还是有点小疑问
: 为什麽在()内 Daira大哥(姊?) 要我加入byref X as XXX
: byref是什麽意思?
呼叫函式时有传址与传值两种,
其中传址代表的是将原本的物件真的传入函式中,
因此在里面所有的修改, 都会直接影响到函式外所传入的参数.
相对而言, 传值代表着将原有物件复制一份 (透过 .clone() ? 忘了 XD)
当然, 实作上可能是在要修改时才复制, 不过精神上是说,
无论你在子函式里对传入的参数做了什麽, 对外头都没有影响.
试着执行看看以下两个函式就会明白了.
'只是显示数字的函式而已 没什麽内容
SUB msgBoxShow (Byval innum as Integer)
msgbox ("目前数值为: " & innum)
END SUB
'传值情况下, 将传入数值加一
SUB doByVal (ByVal innum as Integer)
innum = innum + 1
END SUB
'传址情况下, 将传入数值加一
SUB doByRef (ByRef innum as Integer)
innum = innum + 1
END SUB
'主要测试部份
SUB mainTest
Dim num as Integer
num = 1
'在传值函式前後, 分别 msgbox 报告数值
msgBoxShow(num)
doByVal(num)
msgBoxShow(num)
'在传址函式前後, 分别 msgbox 报告数值
msgBoxShow(num)
doByRef(num)
msgBoxShow(num)
END SUB
--
鬼压床怎麽办
骑上去啊
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.212.129