作者fumizuki (小狮)
看板Visual_Basic
标题Re: [问题] 传回值的设定
时间Sat Mar 26 09:36:53 2005
看不太懂你说的问题...
用个范例来说明函数传值的方法
Sub Form_Activate()
Dim a As Integer, x As Integer, y As Integer
x = 1
y = 2
a = ByValue(x, y)
Print "ByValue:"
Print "x = "; x
Print "y = "; y
Print "a = "; a
Print
a = ByReference(x, y)
Print "ByReference:"
Print "x = "; x
Print "y = "; y
Print "a = "; a
Print
End Sub
Function ByValue(ByVal x As Integer, ByVal y As Integer) As Integer
ByValue = x + y
x = x + 1
y = y * 2
End Function
Function ByReference(x As Integer, y As Integer) As Integer
ByReference = x + y
x = x + 1
y = y * 2
End Function
输出结果:
ByValue:
x = 1
y = 2
a = 3
ByReference:
x = 2
y = 4
a = 3
使用 ByVal 方法,是传递变数的值进去,
呼叫者(Main)与被呼叫者(ByValue)中的 x 及 y 变数使用的是不同的记忆体位址,
所以不管函数内怎麽改变其值,离开函数後,x 和 y 变数的值还是原来的值。
使用 ByRef 方法(预设),是传递变数的位址进去,
呼叫者与被呼叫者中的变数是共用记忆体位址,
所以只要函数内的值有改变,呼叫者(Main)的值也会跟着改变。
使用 ByRef 方法,引数型态必须一致,否则就无法通过编译。
--
人若无星爷,跟条咸鱼有何分别?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.58.156.43