0

ASP Classic 上的 VBScript 包含一个“int”函数。(它向 -∞ 方向舍入数字。)假设某个过于“聪明”的编码人员创建了一个名为“int”的全局变量。有没有办法获得原始功能?我已经用范围界定和狡猾的高管尝试了各种解决方法,但没有骰子。我怀疑这是不可能的,但我希望有人会比我更了解它。

编辑:感谢您的回复。既然你们都问过,名为“Int”的全局变量(不幸的是,vbscript 不区分大小写)是类似于 Java 的 Integer 的类的工厂。默认属性本质上是一个单参数构造函数;即“Int(42)”产生一个新的 IntClass 对象,它持有 42。IntClass 的默认属性反过来简单地返回原始数字。

创建者试图解决缺乏适当的命名空间和静态方法的问题,并且该解决方案实际上非常无缝。传入一个需要 int 的 IntClass,它将自动触发默认属性。我正在尝试修补最后剩下的接缝:调用“int”的外部代码将无法正确舍入(因为构造函数使用 CLng)。

4

3 回答 3

3

据我所知,getref 仅适用于自定义函数,不适用于内置函数。我建议重命名 custom'int' 函数并更新对这个自定义函数的所有引用。您可以使用搜索功能 visual studio (express) 或您喜欢的任何其他工具。不应该做太多的工作。

于 2009-10-29T09:40:29.790 回答
0

或者你可以CInt使用Int

response.write trim(cint(3.14)) + "<br>"

错误的!! 查看NobodyMan 评论

于 2009-10-29T17:09:19.877 回答
0

我认为函数名称或变量不允许使用保留字。

邓肯森是对的。做痛苦并重命名int。可能还有比这更糟糕的事情发生。

(为什么有人会创建一个名为 int 的全局变量......这需要一些思考)

于 2009-10-29T17:18:34.683 回答