由于 vbscript 不支持枚举,是否有任何工作可以解决这个问题?
我有这个代码:
Private Enum dataType
dt_Nothing
dt_Boolean
dt_Decimal
dt_Double
dt_Integer
dt_string
dt_Array
dt_NetJSON
End Enum
提前致谢!
使用常量是非常合乎逻辑的。另一方面,您可以使用您自己的类的全局实例来模仿 VB 枚举。请注意,它看起来就像枚举,我不确定它是否真的有必要。
Class EnumDataType
Public dt_Nothing, dt_Boolean, dt_Decimal
Private Sub Class_Initialize
dt_Nothing = 1
dt_Boolean = 2
dt_Decimal = 4
End Sub
End Class
Dim dataType
Set dataType = New EnumDataType
WScript.Echo dataType.dt_Nothing Or dataType.dt_Boolean Or dataType.dt_Decimal
根据http://www.tek-tips.com/viewthread.cfm?qid=1146844,最好的方法是使用常量。
Const dt_Nothing = Something
Const dt_Boolean = Something
Const dt_Decimal = Something
Const dt_Double = Something
Const dt_Integer = Something
Const dt_string = Something
Const dt_Array = Something
Const dt_NetJSON = Something
我找不到其他方法。我会搜索是否有更好的方法。
提醒一下,您可以通过(例如)这样做来避免臃肿并使其无痛。
Public Const xupv = 1, xvet = 2, xhid = 3, xban = 4, xrep = 5, xech = 6, xvus = 7, xfDpth = 8, xEds = 9
或这个..
Public Const _
xupv = 1 _
, xvet = 2 _
, xhid = 3 _
, xban = 4 _
, xrep = 5 _
, xech = 6 _
, xvus = 7 _
, xfDpth = 8 _
, xEds = 9
(这是经过测试的。解析得很好)
我有时使用的另一种方法是声明字典。喜欢:
昏暗的枚举
设置 oEnum = CreateObject("scripting.Dictionary")
在线程/应用程序初始化时,我确实用我喜欢使用的值填充它,同样我应该使用枚举。
所以 :
oEnum.Add 0, "Enum1"
oEnum.Add 1, "Enum2"
在代码中我喜欢使用枚举的地方,我将这个字典对象称为: someval = oEnum.Items()(index) -> 索引有点像枚举方法。
编辑:您也可以像这样使用它:
oEnum.Add "CONSTANTNAME",整数值
然后您可以通过以下方式获取值:
oEnum.Item(CONSTANTNAME)
Grz约翰
这是我发现有效的代码行。
Const navOpenInNewTab = &H800
Set IE1=CreateObject("InternetExplorer.Application")
IE1.Visible=true
IE1.Navigate2 "http://blogs.msdn.com"
IE1.Navigate2 "http://blogs.msdn.com/tonyschr", CLng(navOpenInNewTab)
IE1.Navigate2 "http://blogs.msdn.com/oldnewthing", CLng(navOpenInNewTab)
IE1.Navigate2 "http://msdn.microsoft.com", CLng(navOpenInNewTab)
'不要忘记使用以下代码行关闭 IE:IE1.Quit