以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义函数中如何实现函数的重载?  (http://foxtable.com/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