自定义可选参数的ASP函数测试

一、下边是测试过程

1.设定一个带参数的函数
<%
Function returnmsg(a)
    returnmsg = ""
    returnmsg = returnmsg & "参数:" & a
End Function
%>


1.1 returnmsg()调用
错误信息:
引用内容 引用内容
Microsoft VBScript 运行时错误 错误 '800a01c2'
错误的参数个数或无效的参数属性值: 'returnmsg'
/return.asp,行6


1.2 returnmsg("")调用
结果正确。

1.3 returnmsg(null)调用
结果正确。

1.4 returnmsg("www.mzwu.com")调用
结果正确。

2.定义两个同名参数,一个带参数一个不带参数
<%
Function returnmsg(a)
    returnmsg = ""
    returnmsg = returnmsg & "参数:" & a
End Function
Function returnmsg()
    returnmsg = ""
    returnmsg = returnmsg & "无参数"
End Function
%>


2.1 returnmsg()调用
结果正确。

2.2 returnmsg("www.mzwu.com")调用
结果错误:
引用内容 引用内容
Microsoft VBScript 运行时错误 错误 '800a01c2'
错误的参数个数或无效的参数属性值: 'returnmsg'
/return.asp,行10


3.定义两个同名函数,同2,但改下顺序
<%
Function returnmsg()
    returnmsg = ""
    returnmsg = returnmsg & "无参数"
End Function
Function returnmsg(a)
    returnmsg = ""
    returnmsg = returnmsg & "参数:" & a
End Function
%>


3.1 returnmsg()调用
结果错误:
引用内容 引用内容
Microsoft VBScript 运行时错误 错误 '800a01c2'
错误的参数个数或无效的参数属性值: 'returnmsg'
/return.asp,行10


3.2 returnmsg("www.mzwu.com")调用
结果正确。

二、测试结果

1.ASP不能定义可省略参数的函数,要省略的参数必须用""或null代替
2.定义两个或多个同名的函数时,ASP只认最后的一个

三、后记
定义一个新类,并在里边设置同名的方法:
<%
Class NewClass
    Public Function returnmsg()
        returnmsg = ""
        returnmsg = returnmsg & "无参数"
    End Function
    Public Function returnmsg(a)
        returnmsg = ""
        returnmsg = returnmsg & "参数:" & a
    End Function
End Class
Dim MyClass
Set MyClass = New NewClass
Response.write MyClass.returnmsg()
Response.write MyClass.returnmsg("2")
%>

结果错误:
引用内容 引用内容
Microsoft VBScript 编译器错误 错误 '800a0411'
名称重定义
/return.asp,行7
Public Function returnmsg(a)


评论: 1 | 引用: 0 | 查看次数: 6691
发表评论
登录后再发表评论!