如下代码:
1. 定义了一个类Class1,Class1中有A,B,C三个属性和一个D过程.
2. 定义了一个函数RegName,它的返回值类型为上面定义的类Class1.然后在调用类里面的东西的时候会有两种情况,第一种比较好理解,但是第二种情况使用了函数名.x这种调用是什么意思?
还有就是RegName.D New Form1 为什么要用New呢?和直接用RegName.D(Form1)有什么区别?
还有就是第二种情况这样调用类的东西和函数本身有什么关系?真是有点不太理解,请高手赐教.先谢谢了!Class1:Public Property Get A() As VariantEnd PropertyPublic Property Let A(ByVal vNewValue As Variant)End PropertyPublic Property Get B() As VariantEnd PropertyPublic Property Let B(ByVal vNewValue As Variant)End PropertyPublic Property Get C() As VariantEnd PropertyPublic Property Let C(ByVal vNewValue As Variant)End PropertyPublic Sub D(str As Form)End Sub
Function RegName:Private Function RegName(ByVal strName As String) As Class1
   '.....
   '.....
   '.....
End Function
两种情况:'第一种情况:
Dim s As Class1
Set s = New Class1
s.A
s.B
s.C
Call s.D(Form1)
'第二种情况:
RegName.A
RegName.B
RegName.C
RegName.D New Form1

解决方案 »

  1.   

    第二种情况等同与
    'RegName.A
    Dim o As Class1
    Set o = RegName()
    o.A 'RegName.B
    Dim o As Class1
    Set o = RegName()
    o.B'RegName.C
    Dim o As Class1
    Set o = RegName()
    o.C'RegName.D New Form1
    Dim f As Form1
    set f = New Form1
    Dim o As Class1
    Set o = RegName()
    o.D f
      

  2.   

    调用类的东西,为什么要Set o = RegName()函数呢?执行的时候和RegName有什么关系呢?
      

  3.   

    哦,我真是太笨了。  其实就是一种简写。由于函数的返回类型是Class1,所以RegName.B也就是先执行完RegName再根据返回值调B。谢谢谢谢。。