VB中如何实现函数重载

yzm8529 2006-01-07 03:49:00
比如:
Function JiSuan(a As Integer)
JiSuan = a ^ 2
End Function

Function JiSuan(a As Integer, b As Integer)
JiSuan = a * b
End Function

Private Sub Command1_Click()
Print JiSuan(2), JiSuan(2, 3)
End Sub

VB提示出现二义性的名称,VB中不能实现函数的重载吗?
要使VB中实现函数重载,该怎么做?
...全文
690 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzm8529 2006-01-13
  • 打赏
  • 举报
回复
Private Function JiSuan(a As Integer, Optional b, Optional c) As Integer '可选参数不要有类型!
If IsMissing(b) Then
JiSuan = a * a
ElseIf IsMissing(c) Then
JiSuan = a * b
Else
JiSuan = a * b * c
End If
End Function

Private Sub Command1_Click()
Print JiSuan(2), JiSuan(2, 3), JiSuan(2, 3, 4)
'打印结果是: 4 6 24
End Sub
yzm8529 2006-01-13
  • 打赏
  • 举报
回复
Private Function JiSuan(a As Integer, Optional b, Optional c) As Integer
If IsMissing(b) Then
JiSuan = a * a
ElseIf IsMissing(c) Then
JiSuan = a * b
Else
JiSuan = a * b * c
End If
End Function

Private Sub Command1_Click()
Print JiSuan(2), JiSuan(2, 3), JiSuan(2, 3, 4)
'打印结果是: 4 6 24
End Sub
xuxun 2006-01-09
  • 打赏
  • 举报
回复
Private Function JiSuan(a As Integer, Optional b) As Integer
If IsMissing(b) Then
JiSuan = a * a
Else
JiSuan = a * b
End If
End Function
不是很好解决
yinweihong 2006-01-08
  • 打赏
  • 举报
回复
to rainstormmaster(暴风雨 v2.0)
你这5块钱起大作用拉,呵呵
ahbbnimor 2006-01-07
  • 打赏
  • 举报
回复
关注
rainstormmaster 2006-01-07
  • 打赏
  • 举报
回复
看《Advanced Visual Basic》(中文书名《高级Visual Basic编程》)的第12章,我是在第二书店 花了5块钱买的,现在不知道有没有货了
yuerugou 2006-01-07
  • 打赏
  • 举报
回复
vb不是真正面向对象,严格讲是基于对象的。
vansoft 2006-01-07
  • 打赏
  • 举报
回复
可以用默认值啊。
第二个参数可以用默认值,
这样可以传一个参数,也可以传入二个值。
jlum99 2006-01-07
  • 打赏
  • 举报
回复
可以设定可选参数,然后在函数里进行判断。
yzm8529 2006-01-07
  • 打赏
  • 举报
回复
至少VB中有类的概念!
yzm8529 2006-01-07
  • 打赏
  • 举报
回复
楼上说得不全对,VB是面向对象的语言
province_ 2006-01-07
  • 打赏
  • 举报
回复
VB不是面向对象的语言,所以没有多态性。
yzm8529 2006-01-07
  • 打赏
  • 举报
回复
楼上的,你误解我的意思了
我不是说如何解决相乘的功能,如是举个例说明VB不能重载
要如何解决VB的函数得载问题

重载是面向对象第二精华,VB中居然没有
面向对象的第一精华是虚函数,VB中更没有
学VB的要掌握面向对象编程,至少要学VB.NET


那VB中如何重载呢?高手说一下
northwolves 2006-01-07
  • 打赏
  • 举报
回复
Function JiSuan(a As Integer, b As Integer)
JiSuan = a * b
End Function

Private Sub Command1_Click()
Print JiSuan(2, 2); JiSuan(2, 3)
End Sub
northwolves 2006-01-07
  • 打赏
  • 举报
回复
Function JiSuan(a As Integer, b As Integer)
JiSuan = a * b
End Function

Private Sub Command1_Click()
Print JiSuan(2,2), JiSuan(2, 3)
End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧