VB2010中什么时候用byval
答案:2 悬赏:70 手机版
解决时间 2021-11-10 23:19
- 提问者网友:焚苦与心
- 2021-11-10 07:24
VB2010中什么时候用byval
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-11-10 08:22
ByVal就是传值调用,就是把变量的值作为参数传送到子过程中,子过程内部对这个参数进行任何修改都不会影响到原变量的值。
而把ByVal去掉或者改为ByRef则是传址调用,就是把变量的内存地址作为参数传送到子过程中,那么子过程内部对这个内存地址进行赋值就相当于直接给原来那个变量赋值,这样原变量的值就会跟着改变。
你这段代码如果想得到100的结果,就要把test子过程的参数a的调用方式改为传址,也就是去掉ByVal即可。
补充:当你不希望子过程改变原变量(或者说实参)的值时,子过程的参数(或者说形参)采用ByVal(传值)调用方式;反之则要采用ByRef(传址)调用方式。
而把ByVal去掉或者改为ByRef则是传址调用,就是把变量的内存地址作为参数传送到子过程中,那么子过程内部对这个内存地址进行赋值就相当于直接给原来那个变量赋值,这样原变量的值就会跟着改变。
你这段代码如果想得到100的结果,就要把test子过程的参数a的调用方式改为传址,也就是去掉ByVal即可。
补充:当你不希望子过程改变原变量(或者说实参)的值时,子过程的参数(或者说形参)采用ByVal(传值)调用方式;反之则要采用ByRef(传址)调用方式。
全部回答
- 1楼网友:佘樂
- 2021-11-10 08:57
Public Class Form1
Private Sub test(Byref a As Integer) 'byval 传值 不改变原值
a = 99 + 1
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, b As Integer
Call test(i)
TextBox1.Text = CStr(i)
End Sub
End Class
Private Sub test(Byref a As Integer) 'byval 传值 不改变原值
a = 99 + 1
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, b As Integer
Call test(i)
TextBox1.Text = CStr(i)
End Sub
End Class
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯