函数重载

函数重载的内容不是很多,我也就用过其中一种,其他的或者深奥些的,还没用过,但是大概看了一下,都大同小异吧,用一句话说就是:同一个名称的东西却有着不同的用途。

就拿我比较熟悉的VB.NET来说吧,当你调用一个系统的函数时,如果他是一个重载了的函数,你会看到参数的提示行有2个三角,如下图:


点击三角形就会翻页,而且显示数量或类型或数量和类型等不同的参数,但是你会发现函数的名字(SelectRechargeRecord())没有改变,当你按照其中的参数类型或个数把参数传进去之后,这个函数执行的就很可能不是同一种功能

那么这样有什么好处呢?

假如你数据库中有用户表T_UserInfo,你登陆的时候,用一个查询函数(Iuser.QueryUserInfo(UserName))来查询用户名密码是否正确,此时你只要把用户名传进去就可以查出一行用户名密码的记录。然后你的系统还有一个功能是把所有用户信息都查出来,同样是查询,同样是用户信息,你是否会另起一个函数名呢?如果以后还有更多中方式的查询,那你就要起很多个不同的但却是用来查询用户信息的名称函数了?这样不太好吧,要记的太多了,有时眼花缭乱的。

那么函数重载就能解决这个问题。

    Overloads Function SelectRechargeRecord(ByVal FieldName As String,ByVal SelectContent As String)
    Overloads Function SelectRechargeRecord(ByVal StartDate As Date,ByVal EndDate As Date)
    Overloads Function SelectRechargeRecord()

这几个函数名称都一样,但是参数类型或者个数都不一样,第一个是通过字段名和查询内容查询,第二个是通过起始日期和终止日期去查询,第三个是什么参数都没有就查整张表呗。但是前面一定要加个关键字Overloads就行。至于这三个函数里面的代码,就依据你参数来写了。

关于函数的重载还有很多种,刚才是对方法的重载,你还可以对运算符重载,其实也跟重载方法一样,你把方法重载了,方法名称一样但却因为参数不一样而执行不同的功能,运算符也是同样的运算符却有着不同的功能,就像你看见的1+1=2,重载运算符+之后,根据你的代码,它可能1+1=10或者其他。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...