我是VB的新手。我在网上读到,为了从函数返回,你做如下事情——
Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Dim Res as integer
Res = x + y
Add = Res ' use the function's name
End Function
我的问题是,这种语法也适用于用户定义的类型吗?如果不是,语法是什么。我尝试了以下方法 -
Public Function getDetails() As clsDetails
Dim details As clsDetails
Set details = New clsDetails
With details
.X = "R"
.Y = "N"
.Z = "N"
' more code follows
End With
getDetails = details 'gives error-> object variable or with block variable not set
End Function
但这在上面一行给了我一个错误 - "对象变量或未设置块变量"。
我在这里做错了什么?
我想clsDetails不是一个UDT,而是一个类。对于定义为对象的变量,您需要使用 SET
关键字。即:
set getDetails = details
有关使用 UDT 作为函数返回值或参数的详细信息,请参阅:用户定义类型 (UDT) 作为类模块中的公共 Sub 中的参数 (VB6)。
// function definition
Public Function add(a, b)
Dim c As integer
c=Val(a) + Val(b)
add=c
End Function
// function calling
x=Text1.Text
y=Text2.Text
z=add(x, y)
MsgBox (z)