下面是一个面向初学者("菜菜级")的 VB.NET 函数重载(Overloading)教程,用最简单、最容易理解的方式来讲解。
🌟 什么是函数重载(Overloading)?
在 VB.NET 中,函数重载的意思是:
|----------------------------------------------------|
| 同一个函数名,可以有多个不同的"版本" ,它们的参数个数或类型不同,但做的事情类似。 |
就像你去餐厅点"炒饭":
-
你可以点"蛋炒饭"
-
也可以点"火腿蛋炒饭"
-
还可以点"海鲜炒饭"
名字都叫"炒饭",但内容不一样。这就是"重载"的思想!
✅ 重载的规则(超简单版)
-
函数名必须一样
-
参数列表必须不同
(比如:参数数量不同,或者参数类型不同)
-
返回值类型不能作为区分依据
(也就是说,只靠返回值不同是不行的!)
🧒 菜菜级示例:打印问候语
我们来写两个 SayHello 函数,一个只接受名字,另一个接受名字和年龄。
sql
Module Module1 ' 第一个 SayHello:只传名字 Sub SayHello(name As String) Console.WriteLine("你好," & name & "!") End Sub ' 第二个 SayHello:传名字 + 年龄 Sub SayHello(name As String, age As Integer) Console.WriteLine("你好," & name & "!你今年 " & age & " 岁了。") End Sub ' 主程序 Sub Main() SayHello("小明") ' 调用第一个 SayHello("小红", 12) ' 调用第二个 Console.ReadKey() End SubEnd Module
🔍 输出结果:
go
你好,小明!
你好,小红!你今年 12 岁了。
✅ 看!两个函数都叫 SayHello,但因为参数不同,VB.NET 就知道该调用哪一个。
💡 再来一个例子:加法(Add)
sql
' 加两个整数Function Add(a As Integer, b As Integer) As Integer Return a + bEnd Function' 加两个小数Function Add(a As Double, b As Double) As Double Return a + bEnd Function' 主程序测试Sub Main() Console.WriteLine(Add(3, 5)) ' 输出 8 Console.WriteLine(Add(3.5, 2.1)) ' 输出 5.6 Console.ReadKey()End Sub
go
VB.NET 会根据你传的是 Integer 还是 Double,自动选择正确的 Add 函数!
❗ 注意事项
-
不能这样写(❌ 错误!):
goFunction Test() As Integer Function Test() As String ' 只返回值不同 → 不行!因为参数完全一样,VB.NET 分不清你要调哪个。
-
重载不仅可以用在
Sub,也可以用在Function、构造函数(New)等。
✅ 总结(给菜菜的你)
| 概念 | 说明 |
|---|---|
| 重载 = 同名不同参 | 函数名一样,但参数不同 |
| 目的 | 让代码更灵活、更易读 |
| 关键 | 看参数!看参数!看参数!(重要的事说三遍) |
如果你照着上面的例子敲一遍代码,就能马上理解啦!🎉
有问题随时问,我会用更"菜菜"的方式解释 😊
