Re: [VB6 ] 一個問題煩請解答

看板Visual_Basic作者 ( 雪寶也要變強喔)時間19年前 (2005/07/26 17:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/6 (看更多)
※ 引述《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
文章代碼(AID): #12vV-P6v (Visual_Basic)
文章代碼(AID): #12vV-P6v (Visual_Basic)