ASP Classic上的VBScript包含一个“int”函数。 (它将数字向-∞舍入。)假设一些过于“聪明”的编码器创建了一个名为“int”的全局变量。有什么方法可以获得原始功能吗?我已经尝试过各种各样的方法,包括范围和狡猾的高管,但没有骰子。我怀疑这是不可能的,但我希望有人能比我更了解它。
编辑:感谢您的回复。因为你们都问过,全局变量叫做“Int”(尽管不幸的是,vbscript不区分大小写),它是一个类似于Java的Integer类的工厂。默认属性本质上是一个arg构造函数;即“Int(42)”产生一个保持42的新IntClass对象.IntClass的默认属性依次返回原始数字。
创建者试图解决缺少适当的命名空间和静态方法的问题,而且解决方案实际上非常无缝。传入一个期望int的IntClass,它会自动触发默认属性。我正在尝试修补最后剩下的接缝:调用“int”的外部代码将无法正确舍入(因为构造函数使用了CLng)。
答案 0 :(得分:3)
不是我所知道的,getref仅适用于自定义函数,而不适用于内置函数。我建议重命名custom'int'函数并更新对这些自定义函数的所有引用。您可以使用搜索功能visual studio(express)或您喜欢的任何其他工具。不应该做太多工作。
答案 1 :(得分:0)
或者您可以在上使用CInt
Int
response.write trim(cint(3.14)) + "<br>"
<强>错误!! 强> 请参阅NobodyMan评论
答案 2 :(得分:0)
我认为函数名称或变量不允许使用保留字。
邓肯森是对的。痛苦并重命名int。有可能发生的事情比这更糟糕。
(为什么有人会创建一个名为int的全局变量...这会考虑一些事情)