我发现vbscript类成员变量可以用外部常量值替换。
Example VBScript
code:
''' save as test.vbs file
Class Person
Private name
Public Sub hi
name= "inner_name"
msgbox name 'will be "outer_name"
End Sub
End Class
set p = new Person
p.hi
Const name = "outer_name"
您可以在 vbs 文件或经典 asp 文件中运行此代码。
将代码保存到test.vbs
并双击运行它。
你会看见“外部名称”.
Why not “内部名称”?
根据我的理解,类私有成员变量不应该受到外部代码的影响。
可以修复吗?
这是我最后的解决方法:
- Use
Sub
or Function
with ()
- Use
Public
with Me.XX
Class Person
Public Function name()
name= "inner_name"
End Function
Public Sub hi
msgbox name 'will be "outer_name"
msgbox name() 'will be "inner_name"
msgbox me.name 'will be "inner_name"
msgbox me.name() 'will be "inner_name"
End Sub
End Class
set p = new Person
p.hi
Const name = "outer_name"
您创建一个在运行时可用的全局常量(无法更改)。该常量将胜过您的类私有成员(因为它们具有相同的名称),因为编译器不知道其中的区别。
建议对全局常量使用一组命名约定以避免冲突。
有用的链接
- 类内常数 https://stackoverflow.com/q/21052084
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)