{{item.label}}

vb中ByVal什么意思?

130****4840
inta 2014
提问时间:2022-05-10 23:32:57
提示:以下回答均以本问题为中心,仅供参考;如需更多帮助,请咨询早鸽顾问。 去咨询
回答 | 共1个
钱刚
钱刚
从业4年
线上咨询代发律师函劳动纠纷
所在地区:重庆市
咨询解答:338
咨询TA

ByVal的意思是按值传递,是指在程序中调用过程时,带实参值的调用语句知识将实参变量复制给过程中的形参,即将实参变量的副本传递给过程中的形参。

1、参数的数据类型:

过程的参数被缺省为具有 Variant 数据类型。也可以声明参数为其它数据类型。下面的函数接受一个字符串和一个整数:

Function WhatsForLunch(WeekDay As String, Hour _

As Integer) As String

"根据星期几和时间,返回午餐菜单。

If WeekDay = "Friday" then

WhatsForLunch = "Fish"

Else

WhatsForLunch = "Chicken"

End If

If Hour > 4 Then WhatsForLunch = "Too late"

End Function

2、按地址传递参数:

按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。

如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。可以给参数传递一个表达式,而不是数据类型。Visual Basic 计算表达式,如果可能的话,还会按要求的类型将值传递给参数。

把变量转换成表达式的最简单的方法就是把它放在括号内。为了把声明为整数的变量传递给过程,该过程以字符串为参数,就可以用下面的语句:

Sub CallingProcedure ()

Dim intX As Integer

intX = 12 * 3

Foo (intX)

End SubSub Foo (Bar As String)

MsgBox Bar "Bar 的值为字符串‘ 36 ’。

End Sub

3、按值传递参数:

按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。

Sub PostAccounts (ByVal intAcctNum as Integer).. "这里放语句。.End Sub

扩展资料

ByVal的输出例子:

1、Dim s = 1

2、Private Sub Form_Load()

3、Debug.print increment(s)

4、Debug.print s

5、End Sub

6、Private Function increment(ByVal x As Integer)

7、x=x+1

8、Debug.print x

End Function

输出结果:

2

1

这里的形参x前有关键字ByVal,调用时以按值方式传递实参。

也就是说,外部的变量数值不会因为它的数值的改变而改变。

与之相对应的则为ByRef关键字。

使用 ByRef 关键字时,参数的传递方式就是按地址传递。

注意:

1.按值传递方式只能用于外部向被调用过程内部传递数据。

2.按地址传递方式可以实现数据的双向传递。

参考资料来源:百度百科-ByVal

2022-05-11 01:03:59
没有符合您的答案?立即联系 “在线顾问"
顾问推荐
{{item.label}}
{{item.desc}}
蒲健翔
蒲健翔顾问
擅长:公司地址变更,工商信息变更,经营范围变更
执业3年
咨询专业顾问
最新问答
2023-06-19 06:34:24
北京海丰益商贸中心基本介绍?
北京海丰益商贸中心基本介绍?
2023-06-19 06:33:56
北京佳兴源装饰有限公司第一分公司公司大概情况
北京佳兴源装饰有限公司第一分公司公司大概情况
2023-06-19 06:33:29
北京君燕环保设备有限公司是多久时候成立的?
北京君燕环保设备有限公司是多久时候成立的?
2023-06-19 06:32:19
北京市华盛业石材经营部是多久时候成立的?
北京市华盛业石材经营部是多久时候成立的?
2023-06-19 06:31:54
北京市四季永芳石材经营部基本介绍?
北京市四季永芳石材经营部基本介绍?