轻松运用VB.NET重载新特性
创始人
2024-06-10 12:50:37
0

在许多的语言中都支持重载这个概念,在网上收集了一些资料,在这里和大家一起来谈谈吧。VB.NET重载方法是另外一个新特性。VB.NET重载的意思是我们可以在一个类中多次声明相同名字的方法只要每一次的声明都有不同的参数列表。

不同的参数列表意味着在列表中不同类型的数据类型。现在让我们先看看以下的方法声明:

  1. Public Sub MyMethod(X As Integer, Y As Integer) 

#T#这种方法的参数列表可以看成(integer,integer)。为了重载这种方法,我们必须使用不同的参数列表,例如(integer,double)。当然你还可以改变一下数据类型的顺序,比如(integer,double)和(double,integer)是不同的,这两种也是重载。重载不能只是通过改变函数的返回类型来实现,而是要求参数的数据类型不同。
作为一个例子,假如我们想提供一个搜索的功能并且根据一些条件返回一组数据,具体代码应该为:

  1. Public Function MyFindData(ByVal Name As String) As ArrayList  
  2. (搜索数据并且返回结果)  
  3. End Function 

在VB 6中,如果我们想基于一些条件增加一个新的搜索选项,就必须增加一个不同名字的函数,也就是说VB 6还没有具备重载的能力。但是现在在VB.NET中,我们可以简单地重载已经存在的函数,这一点和Visual C++很是相似。

  1. Public Overloads Function FindData(ByVal Name As String) As ArrayList   
  2. (搜索数据并且返回结果)  
  3. End Function  
  4. Public Overloads Function FindData(ByVal Age As Integer) As ArrayList  
  5. (搜索数据并且返回结果)  
  6. End Function   

仔细观察可以发现两种方法的声明都是有相同的方法名字。这一点在VB 6中就不行的,它要求每一个方法名字都不一样。但是,在VB.NET重载中就允许存在相同名字的方法,但其参数要求是不同的。值得一提的是,每一个声明都要加入Overloads关键字。
当重载一个方法的时候,我们可以使用Public、Friend等等的辖域关键字让它有不同的作用域,具体做法只要使用不同的参数列表即可。这就意味着我们可以改变MyFindData方法,使它有不同的作用域:

  1. Public Overloads Function FindData(ByVal Name As String) As ArrayList   
  2. (搜索数据并且返回结果)  
  3. End Function  
  4. Friend Overloads Function FindData(ByVal Age As Integer) As ArrayList   
  5. (搜索数据并且返回结果)  
  6. End Function   

有了这个改变,在VB.NET工程中其它代码可以使用MyFindData。MyFindData只需要接收一个整型数据作为参数即可。

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...