Vbscript静态类变量/方法?

5

有没有办法在VBScript中每个类都有一个变量?

如果没有,最好的方法是什么?在类旁边声明全局变量并加上前缀?

另外,是否有一种方法来声明静态/类方法(用于静态构造函数),或者我只能加上函数前缀?

2个回答

4

在支持类级别/静态数据或方法的语言中,您可以将数据或方法显式地与类定义的对象集相关联/绑定。因此,您可以同时拥有Customer.Count和Product.Count,而在Customer代码中使用普通的Count(或@@Count)将访问正确的数字。

  1. 使用这样的数据或方法时无需实例化类。
  2. 将数据或方法与类相关联/绑定。

VBScript不支持静态数据或方法。您必须使用全局数据或函数/子程序,并在头脑中进行关联(也许借助一些命名约定)。访问这些“静态”=全局元素而没有对象是微不足道的,但是-显然-应该小心谨慎地处理。

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


1
你可以像这样做来模拟静态类:
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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接