以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自定义函数中如何实现函数的重载? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78543) |
-- 作者:wohenguaia -- 发布时间:2015/12/11 10:18:00 -- 自定义函数中如何实现函数的重载? 如题 |
-- 作者:大红袍 -- 发布时间:2015/12/11 10:36:00 -- 方法一:你直接在全局代码那里定义函数;
方法二:你在函数内部判断一下参数的类型,然后做不同的操作。 |
-- 作者:wohenguaia -- 发布时间:2015/12/11 10:47:00 -- 方法二:如果参数的个数不同会抱错哦 |
-- 作者:大红袍 -- 发布时间:2015/12/11 10:49:00 -- 那你不可以判断一下参数个数?
If args.Count = 1 Then
Else If args.Count = 2 Then
End If |
-- 作者:wohenguaia -- 发布时间:2015/12/11 11:25:00 -- 嗯,谢谢。如果参数个数一样呢? |
-- 作者:大红袍 -- 发布时间:2015/12/11 11:29:00 -- 一样就判断参数类型啊。 |
-- 作者:wohenguaia -- 发布时间:2015/12/11 12:08:00 -- 谢谢,代码: If Typename(args) = "String()" Then Dim xuexiao As String = args(0) Dim nianji As String = args(1) Dim banji As String = args(2) Dim xueke As String = args(3) Dim laoshi As String = args(4) Return xuexiao & nianji & banji & xueke & "老师是:" & laoshi ElseIf Typename(args) = "Integer()" Then Return args(0) + args(1) End If 不能得到正确的结果,帮忙看看问题,谢谢
[此贴子已经被作者于2015/12/11 12:45:54编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/12/11 18:20:00 -- msgbox(args(0).Gettype.name) If Typeof args(0) Is Integer Then msgbox(1) ElseIf Typeof args(0) Is String Then msgbox(2) End If |