Foxtable(狐表)用户栏目专家坐堂 → 自定义函数中如何实现函数的重载?


  共有2622人关注过本帖树形打印复制链接

主题:自定义函数中如何实现函数的重载?

帅哥哟,离线,有人找我吗?
wohenguaia
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:377 积分:3384 威望:0 精华:0 注册:2011/5/9 12:45:00
自定义函数中如何实现函数的重载?  发帖心情 Post By:2015/12/11 10:18:00 [只看该作者]

如题

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/11 10:36:00 [只看该作者]

方法一:你直接在全局代码那里定义函数;

 

方法二:你在函数内部判断一下参数的类型,然后做不同的操作。


 回到顶部
帅哥哟,离线,有人找我吗?
wohenguaia
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:377 积分:3384 威望:0 精华:0 注册:2011/5/9 12:45:00
  发帖心情 Post By:2015/12/11 10:47:00 [只看该作者]

方法二:如果参数的个数不同会抱错哦

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/11 10:49:00 [只看该作者]

那你不可以判断一下参数个数?

 

If args.Count = 1 Then

 

Else If args.Count = 2 Then

 

End If


 回到顶部
帅哥哟,离线,有人找我吗?
wohenguaia
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:377 积分:3384 威望:0 精华:0 注册:2011/5/9 12:45:00
  发帖心情 Post By:2015/12/11 11:25:00 [只看该作者]

嗯,谢谢。如果参数个数一样呢?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/11 11:29:00 [只看该作者]

一样就判断参数类型啊。

 回到顶部
帅哥哟,离线,有人找我吗?
wohenguaia
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:377 积分:3384 威望:0 精华:0 注册:2011/5/9 12:45:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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

 回到顶部