
正文
vbnet实参的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb中形参和实参的区别
在函数或过程中定义的参数叫形参,调用函数时传入的参数叫实参。
在VB中,传递变量就是传地址,除非指定传值,即byval
过程或函数中的形式参数没有特别指明是传址方式还是传值方式,隐含的是传址。实际调用时,还要根据实参的形式,才能确定是传值还是传址的数据传送方式。若实参为常量或表达式,则为传值的传递方式;若实参是变量名或数组名,则为传址的传递方式。
相关问答
Q1: 在VB编程中,过程章节中的形参和实参有什么区别?具体点
形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.
实参:全称为"实际参数"是在调用时传递个该函数的参数.
形参和实参的类型必须要一致,或者要符合隐含转换规则,
当形参和实参不是指针类型时,在该函数运行时,形参和实
参是不同的变量,vbnet实参他们在内存中位于不同的位置,形参将实
参的内容复制一份,在该函数运行结束的时候形参被释放,
而实参内容不会改变.
而如果函数的参数是指针类型变量,在调用该函数的过程
中,传个函数的是实参的地址,在函数体内部使用的也是
实参的地址,即使用的就是实参本身.所以在函数体内部
可以改变实参的值.
给vbnet实参你一个很简单的例子:
int f(int b) /*b为形参*/
{ return b;}
main()
{int a=1; br/printf("%d",f(a));/*a为实参*/ br/}
Q2: vb中形参和实参的区别是什么?
形参是编写函数(子程序)时定义vbnet实参的参数vbnet实参,实参实调用这个函数(子程序)是传递给函数(子程序)vbnet实参的参数。
如:function a(c as single) 中的c就是形参。
调用时:b=a(10),或者b=a(s)vbnet实参,其中的10、s就是实参。
Q3: vb.net中 形参 和实参?
形参就是传递到函数里vbnet实参的参数
实参是函数调用时传递vbnet实参的参数
Q4: 在VB中什么是实参和形参还有参数,有什么区别和作用,具体该如何书写,什么时候用到形参,请写代码举例,
定义函数时候用到的传入参数,就是形参,例如:
function inc(byval num as integer) as integer
inc = num + 1
end function
这个函数将传入的值加1后返回,其中inc是函数的名字,num就是形参,此时它不代表任何值,只是个形式。
调用函数时用到的实际参数就是实参,例如:
private sub command1_click()
a=10
msgbox inc(a)
end sub
实际调用inc函数时,用变量a作为实参,此时它的值是10,调用完后返回结果是11,a的值无变化。
Q5: VB.net子程序传参的困惑(ByVal 和Byref 没有区别的时候是为什么??)
这里觉得没有区别,是因为在SubAddRow 里,我们并没有试图改变形参 t 本身,我们所做的改变都是 t.Rows,我们为 t 添加了行。
对于形参和实参而言,在ByVal 模式下 temTable 和 t 指向了同一块内存,但是这两个变量本身并不在同一个地址上。在改变 t.Rows时,由于二者都指向同一块内存,所以更改了t.Rows里的行数据;
在ByRef模式下,temTable 和 t 就是同一块内存,二者在一个地址上,肯定也就指向同一块内存,在改变 t.Rows时,就是对 temTable 的改变。
在此举个例子:假设我们需要将 temTable 清空,那么我们还是以 t 作为形参,我们可以这样写:
' ByVal 方式传参
Private Sub ClearRow(ByVal t As DataTable)
t = Nothing
End Sub
' ByRef 方式传参
Private Sub ClearRow(ByRef t As DataTable)
t = Nothing
End Sub
' 并且这样调用
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
ClearRow(temTable)
DataGridView1.DataSource = temTable
End Sub
这样,就是有区别的了。ByVal方式时,虽然 t 被置为 Nothing ,但是由于 t 和 temTable 并不是一个变量,并不在同一个地址上,所以 temTable 没有变。
而 ByRef 时,t 和 temTable 就是同一个变量,在同一个地址上,t = Nothing的同时,temTable 也就是Nothing了。
如果这个解释还不清楚,可以追问。
关于vbnet实参和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





