Asp classic 经典asp cint

Asp classic 经典asp cint,asp-classic,Asp Classic,我不熟悉经典asp,我所有的经验都是在c#.net、ColdFusion和php中 不管怎么说,我正在工作的这个网站到处都有这样的代码 If (CInt("0" & myVar) > 0) Then myNewCar = CInt("0" & myVar) End If 我不明白的是,为什么在cint()输入中将“0”附加到var中?我是不是错过了什么?这是某种安全的东西吗?效率高吗 另一方面,任何推荐的经典asp书籍?myVar可能是空的、对象、空字符串或非数字

我不熟悉经典asp,我所有的经验都是在c#.net、ColdFusion和php中

不管怎么说,我正在工作的这个网站到处都有这样的代码

If (CInt("0" & myVar) > 0) Then
    myNewCar = CInt("0" & myVar)
End If
我不明白的是,为什么在cint()输入中将“0”附加到var中?我是不是错过了什么?这是某种安全的东西吗?效率高吗


另一方面,任何推荐的经典asp书籍?

myVar可能是空的、对象、空字符串或非数字的。预挂起的“0”保证无论发生什么情况,您都会得到一些有效的整数。

处理空值是一种老生常谈。对null调用CInt将导致错误。但是,将字符串与null串联会导致字符串中出现“0”&null返回“0”。这可以防止CInt在值为null时出错。

我的经典ASP有点生锈,但我相信这是安全的。例如,如果未定义myVar,它尝试执行CInt,则会导致错误。

如果输入空值,则会出现错误。Cstr的情况并非如此

假设检查myVar>0基本上是一个空检查

myVar=cstr(myVar)
If (not length(myVar) = 0) Then
    myNewCar = cint(myVar)
End If

因此,myNewCar将是“”或值,您将永远不会得到错误

CInt(Empty)返回0。尝试使用不具有默认属性的对象连接“0”将导致错误。如果使用option explicit,代码将无法编译,如果没有option explicit,将动态定义未定义的变量,并为其指定空值。空值将变为0。这里有点有趣。添加子项无法(添加子项cint(Val)cint=clng(Val)end sub。很抱歉之前的帖子