首页 > 代码库 > 函数重载

函数重载

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

       就拿我比较熟悉的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或者其他。