当你像x = myfunc(a,b,,d) 第三个参数一样调用函数时?它是空的吗?空值?没有?
我的功能有问题,比方说,
function myfunc(p1, p2, p3, p4)
if p3 <> "" then whatever
end function
Run Code Online (Sandbox Code Playgroud)
给了我一个可怕的 type mismatch
PS我正在尝试用vbscript函数替换COM对象,并且对那些没有问题的COM对象进行了那些空参数调用,但是vbscript不喜欢它们.我不能改变调用,只有函数,所以我需要以某种方式处理空参数,只是不知道如何(尝试isnull没有运气,也是没有运气,并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
Run Code Online (Sandbox Code Playgroud)
注意:由于语法错误,函数/ sub的最后一个参数不能为空.