从 VB6 中的函数返回用户定义的类型



我是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) 

最新更新