
正文
vb.net子函数形参,vb里面function函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.NET 如何带参数构造函数对象或是类
public
structure
struc
public
name
as
string
public
shengao
as
integer
……
end
structure
public
items
as
struc()
readonly
property
people(argname
as
string)
as
struc
get
for
each
i
as
struc
in
items
if
i.name=argname
then
reture
i
next
end
get
end
property
struc可以用class,property可以用function,people通过参数返回一个对象,对象可以来源于某个数组的某个元素,也可以是其他来源。
people也可以是类的
构造方法
,而shengao等是类的成员,但你的写法是错误的,构造方法必须用new
实例化
相关问答
Q1: vb中子函数,形参与实参个数不同,如何解释呢?
形参是编写函数(子程序)时定义的参数,实参实调用这个函数(子程序)是传递给函数(子程序)的参数。
Public Sub P_Proc_SheetClear(ByRef oSpr As vaSpread, Optional ByVal StartRow As Long = -1, Optional ByVal EndRow As Long = -1, Optional ByVal StartCol As Long = -1, Optional ByVal EndCol As Long)中的oSpr ,StartRow ,EndRow ,StartCol ,EndCol 就是形参,当你调用这个过程函数的时候,P_Proc_SheetClear()括号里面需要填写的值就是实参
Q2: vb.net中 形参 和实参?
形参就是传递到函数里的参数
实参是函数调用时传递的参数
Q3: vb.net 函数参数添加说明??
在要注释的函数上方添加 ‘’‘ (三个)
会自动弹出!
'''summary
''' 这个是函数说明
'''/summary
'''returns返回说明/returns
'''remarks/remarks
详情参考:
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了。
如果这个解释还不清楚,可以追问。






