轻松运用VB.NET重载新特性

开发 后端
这里就VB.NET重载给我展开介绍,其实重载就是我们可以在一个类中多次声明相同名字的方法只要每一次的声明都有不同的参数列表。

在许多的语言中都支持重载这个概念,在网上收集了一些资料,在这里和大家一起来谈谈吧。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只需要接收一个整型数据作为参数即可。

 

责任编辑:田树 来源: 博客
相关推荐

2009-10-28 15:01:59

VB.NET SHEL

2010-01-13 18:28:21

VB.NET历史菜单

2009-10-30 16:31:55

VB.NET重载方法

2009-11-02 10:30:37

VB.NET EXCE

2010-01-11 15:12:30

VB.NET特殊窗体

2010-01-15 18:30:50

VB.NET Dlli

2009-10-29 15:02:04

VB.NET文件排序

2009-10-29 16:29:02

VB.NET文件系统对

2009-11-02 11:02:58

VB.NET XML文

2009-10-19 17:42:31

VB.NET API函

2009-11-10 15:52:20

VB.NET变量名

2009-10-30 14:45:42

Flash控制VB.N

2010-01-14 11:00:48

VB.NET文件合并

2010-01-14 13:59:01

2010-01-13 17:47:59

VB.NET拖放

2010-01-22 17:22:49

VB.NET事件访问器

2010-01-15 18:56:58

VB.NET Fiel

2010-01-19 14:42:43

VB.NET调用过程重

2010-01-15 16:03:48

VB.NET重载Win

2009-07-06 11:00:56

.NET 4.0新特性.NET
点赞
收藏

51CTO技术栈公众号