vbscript静态类变量/方法?

时间:2012-10-10 05:40:40

标签: oop vbscript static-methods static-variables class-method

有没有办法在vbscript中为每个类创建一个变量?

如果不是最好的模仿方法是什么?前缀在类旁边声明的全局变量?

还有一种方法来声明静态/类方法(对于静态构造函数)还是我强制为函数添加前缀?

2 个答案:

答案 0 :(得分:3)

在支持类级别/静态数据或方法的语言中,您可以

  1. 将数据或方法显式关联/绑定到类定义的对象集。因此,您可以在客户代码中使用Customer.Count Product.Count以及普通计数(或@@ Count)来访问正确的数字。
  2. 在没有该类实例的情况下使用此类数据或方法。
  3. VBScript不支持静态数据或方法。您必须使用全局数据或函数/ subs并在您的脑海中进行关联(可能在命名约定的帮助下)。在没有对象的情况下访问这些'static'=全局元素是微不足道的,但是 - 显然 - 应该小心处理。

    您可以在对象中嵌入一个或多个单例对象或代码引用(GetRef()),使它们更接近类,但这会增加实例的大小。

答案 1 :(得分:0)

您可以执行以下操作来模拟静态类:

Class Defines_
   Public Sub DoSomethingUseful
   End Sub
End Class

Dim Defines : Set Defines = New Defines_
...

Defines.DoSomethingUseful

这可以为您提供类似于构造函数的东西(实际上是工厂方法):

Class Something
   Private mValue
   Public Property Get Value : Value = mValue : End Property
   Public Property Let Value(x) : mValue = x : End Property
End Class

Class SomethingFactory_
   Public Function Create(value)
      Set Create = New Something
      Create.Value = value
   End Function
End Class
Dim SomethingFactory : Set SomethingFactory = New SomethingFactory_
...

Dim something : Set something = SomethingFactory.Create(5)