当你调用像 x = myfunc(a,b,,d)
这样的函数时第三个参数会发生什么?它是空的吗?空值?没有?
我的功能有问题,比如说,
function myfunc(p1, p2, p3, p4)
if p3 <> "" then whatever
end function
给我一个可怕的
type mismatch
附言我正在尝试用 vbscript 函数替换 COM 对象,并且对那些没有问题的 COM 对象进行了那些空参数调用,但是 vbscript 不喜欢它们。我不能改变调用,只能改变函数,所以我需要以某种方式处理空参数,只是不知道如何(尝试 isnull 没有运气,也没有运气,isempty 没有运气,和
is nothing
给我一个 object required
错误)
最佳答案
遗漏参数的数据类型为ERROR。
我写了一个例子,请尝试以下操作:
Function IsMissing(p)
IsMissing = (VarType(p) = vbError)
End Function
Function Myfunc(p1, p2, p3, p4)
If IsMissing(p1) Then Response.Write "p1 is missing "
If IsMissing(p2) Then Response.Write "p2 is missing "
If IsMissing(p3) Then Response.Write "p3 is missing "
If IsMissing(p4) Then Response.Write "p4 is missing "
End Function
str = myfunc(, , , 1)
'str = myfunc(1, 2, , ) 'causes error
通知:由于语法错误,function/sub 的最后一个参数不能为空。
关于vbscript - 如何处理函数调用中的空参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7354757/