VB: ByVal是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB: ByVal是啥意思相关的知识,希望对你有一定的参考价值。
说一下用法~
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
ByVal的意思是按值传递。
值传递是指在程序中调用过程时,带实参值的调用语句知识将实参变量复制给过程中的形参,即将实参变量的副本传递给过程中的形参。
参数的数据类型
过程的参数被缺省为具有 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
详细信息 关于 Visual Basic 的数据类型,请参阅本章前面部分。也可以在语言参考中查找指定的数据类型。
按值传递参数
按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。
例如:
Sub PostAccounts (ByVal intAcctNum as Integer)
.
. '这里放语句。
.
End Sub
按地址传递参数
按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。
如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。可以给参数传递一个表达式,而不是数据类型。Visual Basic 计算表达式,如果可能的话,还会按要求的类型将值传递给参数。
把变量转换成表达式的最简单的方法就是把它放在括号内。例如,为了把声明为整数的变量传递给过程,该过程以字符串为参数,则可以用下面的语句:
Sub CallingProcedure ()
Dim intX As Integer
intX = 12 * 3
Foo (intX)
End Sub
Sub Foo (Bar As String)
MsgBox Bar 'Bar 的值为字符串‘ 36 ’。
End Sub
扩展资料
在Visual Basic中,按值传递方式通过关键字 ByVal (By Value)来实现。也就是说,在定义通用过程时,如果形参前面有关键字ByVal,则该参数用传值方式传送,否则即以引用(即按地址)方式传递。
与按值传递相反,如果参数采取的是按地址传递,则传给过程的将是真正的实参本身。采用地址传递方式,当调用过程语句被执行时,过程中的形参直接引用了调用语句中的实参,此时,形参与实参实质上使用的是同一个存储单元。
因此,过程中对形参的操作都将对实参产生实际的影响。
参考资料来源:百度百科:ByVal
参考技术B 过程中的代码通常需要某些关于程序状态的信息才能完成它的工作。信息包括在调用过程时传递到过程内的变量。当将变量传递到过程时,称变量为参数。参数的数据类型
过程的参数被缺省为具有 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
详细信息 关于 Visual Basic 的数据类型,请参阅本章前面部分。也可以在语言参考中查找指定的数据类型。
按值传递参数
按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。
例如:
Sub PostAccounts (ByVal intAcctNum as Integer)
.
. '这里放语句。
.
End Sub
按地址传递参数
按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。
如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。可以给参数传递一个表达式,而不是数据类型。Visual Basic 计算表达式,如果可能的话,还会按要求的类型将值传递给参数。
把变量转换成表达式的最简单的方法就是把它放在括号内。例如,为了把声明为整数的变量传递给过程,该过程以字符串为参数,则可以用下面的语句:
Sub CallingProcedure ()
Dim intX As Integer
intX = 12 * 3
Foo (intX)
End Sub
Sub Foo (Bar As String)
MsgBox Bar 'Bar 的值为字符串‘ 36 ’。
End Sub本回答被提问者采纳 参考技术C ByVal 按值传递(ByValue),意思是传入的形式参数改变了,但是不影响实际参数的数值
比如
在一个函数fn()有参数para,是byval的,
那么在函数里面如果有语句para=999,
有变量dim p as integer = 100;
那么调用
fn(p)
之后,p的值仍然是100,而不是999,函数里面的修改不影响外面的变量
与它对应的是ByRef ,按引用传递
这个时候,调用了函数之后,p的值就变成999了
用法,就是在参数声明的前面加上ByVal关键字就可以了
例如 ...( ByVal aaa as integer, ByVal bb as string) 参考技术D 在Visual Basic中,按值传递方式通过关键字 ByVal (By Value)来实现。也就是说,在定义通用过程时,如果形参前面有关键字ByVal,则该参数用传值方式传送,否则即以引用(即按地址)方式传递。
例如:
Dim s = 1
Private Sub Form_Load()
Debug.print increment(s)
Debug.print s
End Sub
Private Function increment(ByVal x As Integer)
x=x+1
Debug.print x
End Function
输出结果:
2
1
这里的形参x前有关键字ByVal,调用时以按值方式传递实参。
也就是说,外部的变量数值不会因为它的数值的改变而改变。
与之相对应的则为ByRef关键字。
使用 ByRef 关键字时,参数的传递方式就是按地址传递。
注意:
1.按值传递方式只能用于外部向被调用过程内部传递数据。
2.按地址传递方式可以实现数据的双向传递。
VB中Cls是啥意思
vb中cls是一个语言功能。(CLS,CLear
Screen)功能:清除屏幕上的所有显示,光标置于屏幕左上角C语言中用system("CLS");,在TC、VC中都能起到清屏的效果。要使用头函数“stdlib.h”
。但在TC环境下也可以用clrscr()。
扩展资料:
在VB中,注释有2种方式:
1、以Rem关键字开头,并且Rem关键字与注释内容之间要加一个空格。注释可以是单独的一行,也可以写在其他语句行的后面。如果在其他语句行后使用Rem关键字,则必须使用冒号(:)与语句隔开。
2、使用一个撇号(')来代替Rem关键字。若使用撇号,则在其他语句行使用时不必加冒号。
Visual
Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active
X控件,用于高效生成类型安全和面向对象的应用程序。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 参考技术A 清空容器上的图像及内容
比如清空图像框当前显示的图片,窗体Form上print的内容清空 参考技术B 清空容器上的图像内容,
比如
先执行
"23",那就会在窗体上画出(输出)
23,
然后执行
Cls,就将屏幕上的画出的内容清空
以上是关于VB: ByVal是啥意思的主要内容,如果未能解决你的问题,请参考以下文章