
正文
关于vb.net中实参的信息
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net中 形参 和实参?
形参就是传递到函数里的参数
实参是函数调用时传递的参数
相关问答
Q1: 如何使用VB.NET中可选参数调用方法
VB.NET可选参数的默认值必须是一个常数表达式。
过程定义中跟在可选参数后的每个参数也都必须是可选的。
下面的语法显示带VB.NET可选参数的过程声明:
Sub sub name(ByVal parameter 1 As data type 1,
Optional ByVal parameter 2 As data type 2 = default value)
调用带VB.NET可选参数的过程
过程在运行时无法检测到给定的参数是否已被省略,或者调用代码是否已显式提供默认值。如果需要弄清楚这一点,可以设置一个不可能的值作为默认值。下面的过程定义了可选参数 office,并测试其默认值 QJZ 以查看它在调用中是否已被省略:
Visual Basic
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.WriteLine("office not supplied -- using Headquarters")
office = "Headquarters" End If
' Insert code to notify headquarters or specified office.
End Sub
如果可选参数是像 String 这样的引用类型,只要它不是该变量所预期的值,就可以使用 Nothing 作为默认值。
VB.NET可选参数和重载
定义带可选参数的过程的另一种方法是使用重载。如果有一个可选参数,可以定义过程的两个重载版本,一个接受此参数,另一个则不带参数。此方法随可选参数数目的增加而变得更复杂。然而,这样做的优点是可以完全确定调用程序是否提供了每个VB.NET可选参数。
Q2: VB.NET Listview绑定ACCESS数据库出错,求高人指教急急急急急!!!
看错误提示应该是数据类型不匹配的问题。
Public Overridable ReadOnly Default Property Item(key As String) As System.Windows.Forms.ListViewItem”: 与形参“key”匹配的实参从“Long”收缩转换为“String”。
这里vb.net中实参,调用的时候,key这个参数,应该为string型,可能是因为,你使用的时候用vb.net中实参了Long型。所以出这样的提示
另一个也是类似,应该是integer类型的参数,你调用时使用了Long型变量作参数了。
Q3: 如何为形参指定实参 ?vb?
function abc(a,b,c);
这里vb.net中实参的a,b,c 属于形参。
abc(1,2,3);
这里的1,2,3 属于实参。
简单点理解就是vb.net中实参,函数头写的参数都属于形参,只是一种形式。
而具体调用的时候,传入的参数为实体参数。
Q4: 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了。
如果这个解释还不清楚,可以追问。
vb.net中实参的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net中实参的信息别忘了在本站进行查找喔。







