VB 变量、参数传递的基本知识:
ByRef 与 ByVal 传值的区别
传递方式:
ByRef 表示该参数按实际地址传递,源数据可以被调用的函数修改。ByRef 是 Visual Basic 的缺省、默认选项。
ByVal 可选的,表示该参数按值传递,源数据不会被调用的函数修改。
参数含义:
ByRef 是传址,就是把变量的地址传送给函数,在函数的内部对参数的修改,实际上是对变量地址里的数据修改,所以当函数返回的时候,传进来的变量也是跟着改变的。
传送参数内存的实际地址给被调用者。也就是说,栈中压入的是实际内容的地址。被调用者可以直接更改该地址中的内容。
ByVal 是传值,顾名思义,就是把变量的数据传给函数,函数内部对其做任何处理都不会影响变量本身的值。
传送参数内存的一个拷贝给被调用者。也就是说,栈中压入的直接就是所传的值。
演示代码:
Private Function TestByVal(ByVal Tmp1 As Long)
Tmp1 = Tmp1 + 1
End Function
Private Function TestByRef(ByRef Tmp1 As Long)
Tmp1 = Tmp1 + 1
End Function
Private Sub Form_Load()
Dim Tmp As Long
Tmp = 1
TestByVal Tmp
MsgBox Tmp
'显示:Tmp 的值为 1。
TestByRef Tmp
MsgBox Tmp
'显示:Tmp 的值为 2,因为 TestByRef 中的参数 Tmp1 为 ByRef。
'ByRef 是按地址传递,因此在 TestByRef 中对 Tmp1 进行修改后,将会导致源参数 Tmp 的值也被修改。
End Sub
文章来源于lcx.cc:【VB技巧】VB 中 Byref与Byval传值的区别
相关推荐: ShopEx 4.85 网上商店系统后台拿WebShell
转自:http://t00ls.net/thread-13838-1-1.html,作者:hiicome。 刚在官方下了一个最新的自己测试了一下,很简单的。 首先进网站后台(废话),打开以下Url,进行文件编辑: http://localhost/sh…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论