2017年9月14日 星期四
[VB6] ByVal,ByRef 傳遞變數到副程式的差別
以 ByVal 傳遞變數
描述以傳'值'方式傳遞引數,這表示程序不能修改變數本身
以 ByRef 傳遞引數
描述以傳'址'方式傳遞引數,這表示程序可以修改變數本身
ex
開啟一個標準執行檔,並在畫面中拉出一個按鈕
之後打入以下程式碼
-----------------------------------------------------------------
Option Explicit
'按鈕按下去觸發的事件
Private Sub Command1_Click()
Dim X1 As String
Dim X2 As String
X1 = "哈哈"
X2 = "哼哼"
'呼叫副程式,並且把值導入
Call TEXTA(X1, X2)
'秀出畫面
MsgBox X1 & " / " & X2
End Sub
'自訂副程式
Private Sub TEXTA(ByVal A1 As String, ByRef A2 As String)
'將導入的值重新定義
A1 = "1"
A2 = "2"
End Sub
-----------------------------------------------------------------
執行後就會發現很明顯的差別
畫面會呈現 "哈哈 / 2" 這個結果
由此就可以知道在副程式中
A1是將 X1值 指定到 A1這個變數中,在副程序中A1如何改變都不會影響母體
A2是將 X2址 指定到 A2這個代號中,可以理解在副程序中 A2就等同於X2, A2只要有改變都會回饋到X2
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言