带静态方法的VBA类

时间:2017-07-27 15:13:02

标签: excel vba excel-vba

VBA允许您将类方法定义为静态。尽管进行了大量的实验,但我看不出它们与常规类方法的区别。我怀疑没有区别,引擎会在此上下文中忽略static关键字。

这是一个将编译的示例类(测试Excel 2010):

' Class1.
' 4 methods, 2 static & 2 not.

Public Sub Method1()

    Debug.Print "foo"
End Sub

Public Static Sub Method2()

    Debug.Print "bar"
End Sub

Public Function Method3() As String

    Method3 = "foo"
End Function

Public Static Function Method4() As String

    Method4 = "bar"
End Function

如此测试:

Sub TestClass1()    
    Dim x As Class1
    Set x = New Class1

    x.Method1   ' prints foo.
    x.Method2   ' prints bar.
    x.Method3   ' returns foo.
    x.Method4   ' returns bar.
End Sub

一些观察结果:

  • 每次通话时都会重新计算静态方法。
  • 如果没有首先对类进行实例化,则无法调用静态方法。

我错过了什么吗?

0 个答案:

没有答案