VB.NET函数重载(Overloading)教程(菜菜级)

下面是一个面向初学者("菜菜级")的 VB.NET 函数重载(Overloading)教程,用最简单、最容易理解的方式来讲解。


🌟 什么是函数重载(Overloading)?

在 VB.NET 中,函数重载的意思是:

|----------------------------------------------------|
| 同一个函数名,可以有多个不同的"版本" ,它们的参数个数或类型不同,但做的事情类似。 |

就像你去餐厅点"炒饭":

  • 你可以点"蛋炒饭"

  • 也可以点"火腿蛋炒饭"

  • 还可以点"海鲜炒饭"

名字都叫"炒饭",但内容不一样。这就是"重载"的思想!


✅ 重载的规则(超简单版)

  1. 函数名必须一样

  2. 参数列表必须不同

    (比如:参数数量不同,或者参数类型不同)

  3. 返回值类型不能作为区分依据

    (也就是说,只靠返回值不同是不行的!)


🧒 菜菜级示例:打印问候语

我们来写两个 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 函数!

❗ 注意事项

  • 不能这样写(❌ 错误!):

    go 复制代码
    Function Test() As Integer
    Function Test() As String   ' 只返回值不同 → 不行!

    因为参数完全一样,VB.NET 分不清你要调哪个。

  • 重载不仅可以用在 Sub,也可以用在 Function、构造函数(New)等。


✅ 总结(给菜菜的你)

概念 说明
重载 = 同名不同参 函数名一样,但参数不同
目的 让代码更灵活、更易读
关键 看参数!看参数!看参数!(重要的事说三遍)

如果你照着上面的例子敲一遍代码,就能马上理解啦!🎉

有问题随时问,我会用更"菜菜"的方式解释 😊

相关推荐
波力海苔夹心脆6755 小时前
C# 视觉检测实战:PLC 按钮触发 VisionPro 检测,OK 亮灯 / NG 灭灯(西门子 PLC,含界面显示与图片存档)
开发语言·经验分享·c#·自动化·视觉检测·.net
hez20107 小时前
一行代码在 .NET 项目里启用 Satori GC
c#·.net·.net core·gc·clr
QUDONG_biubiubiu10 小时前
.NET Runtime 6.0/7.0/8.0/9.0下载修复教程,软件打不开这样解决
.net·net runtime下载·net运行库修复·net runtime安装
宝桥南山11 小时前
.NET 11 - 尝试创建一下AGUIServer和AGUIClient(基于新版.NET SDK for AG-UI)
microsoft·ai·微软·c#·aigc·.net
波力海苔夹心脆67511 小时前
C# LINQ 入门到上手:一篇讲透查询语法、常用操作符与延迟执行(含示例与速查表
经验分享·c#·.net·solr·linq
小羊没烦恼!1 天前
Windows Azure Platform体验(1):Windows Azure
java·大数据·后端·python·flask·word·.net
CSharp精选营2 天前
IIS 后面挂 Kestrel,这 3 个配置错了就 502
kestrel·.net·iis配置
鑫 源2 天前
C#源码开源, 获取macOS 电池数据,包括iOS (xamarin开发)
c#·.net·xamarin
xiangcns4 天前
PDMS PiplineTool(三十)一堆小优化+一个彩蛋功能
.net·二次开发·pdms