我正在努力理解VB6中的按值傳遞和按引用傳遞。我在.NET和Java等面向?qū)ο蟮木幊陶Z言中完全理解了這些概念(我意識到Java并沒有通過引用傳遞)??聪旅娴拇a:Private Sub Form_Load()Dim Test As IntegerTest = 1TestFunction Test 'line 5MsgBox (Test)End SubPrivate Sub TestFunction(ByVal i As Integer) i = i + 1End Sub當(dāng)我在第5行的Test上放置方括號時(shí),消息框?qū)次移谕哪菢哟蛴??,F(xiàn)在看看下面的代碼:Private Sub Form_Load()Dim Test As IntegerTest = 1TestFunction Test 'line 5MsgBox TestEnd SubPrivate Sub TestFunction(ByRef i As Integer) i = i + 1End Sub消息框?qū)次移谕哪菢哟蛴?。但是,如果將括號添加到第5行,則消息框?qū)⒋蛴?,這是我所不希望的??雌饋恚词贡徽{(diào)用函數(shù)中定義的變量是ByRef,調(diào)用函數(shù)也可以按值傳遞。似乎反之亦然,例如,如果被調(diào)用函數(shù)的簽名帶有定義為ByVal的變量,則它將始終為ByVal(即使調(diào)用函數(shù)中變量周圍沒有括號)。VB6中這背后的想法是什么?我意識到這是VB6中的一個(gè)基本問題,但這使我感到困惑。我已經(jīng)閱讀了MSDN文檔,并且意識到這是真的,但是并沒有解釋其背后的原因。
VB6按值傳遞并按引用傳遞
元芳怎么了
2019-10-22 21:51:01