深入探讨VB.NET重载方法

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

在向大家详细介绍VB.NET重载方法之前,首先让大家了解下VB.NET重载方法是什么,然后全面介绍VB.NET重载方法。以下介绍新特性是有VB.NET重载方法的能力。重载的意思是我们可以在一个类中多次声明相同名字的方法只要每一次的声明都有不同的参数列表。不同的参数列表意味着在列表中不同类型的数据类型。现在让我们先看看以下的方法声明:

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

这种方法的参数列表可以看成(integer,integer)。为了VB.NET重载方法,我们必须使用不同的参数列表,例如(integer,double)。当然你还可以改变一下数据类型的顺序,比如(integer,double)和(double,integer)是不同的,这两种也是重载。重载不能只是通过改变函数的返回类型来实现,而是要求参数的数据类型不同。

作为一个例子,假如我们想提供一个搜索的功能并且根据一些条件返回一组数据,具体代码应该为:

  1. Public Function MyFindData(ByVal Name As String) As ArrayList  
  2. End Function 

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

  1. Public Overloads Function FindData(ByVal Name As String) As ArrayList  
  2. End Function 

仔细观察可以发现两种方法的声明都是有相同的方法名字。这一点在VB 6中就不行的,它要求每一个方法名字都不一样。但是,在VB.NET中就允许存在相同名字的方法,但其参数要求是不同的。值得一提的是,每一个声明都要加入Overloads关键字。

当VB.NET重载方法的时候,我们可以使用Public、Friend等等的辖域关键字让它有不同的作用域,具体做法只要使用不同的参数列表即可。这就意味着我们可以改变MyFindData方法,使它有不同的作用域:

  1. Public Overloads Function FindData(ByVal Name As String) As ArrayList  
  2. End Function  
  3.  
  4. Friend Overloads Function FindData(ByVal Age As Integer) As ArrayList  
  5. End Function  

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

【编辑推荐】

  1. 讲解VB.NET开发语言和C#简单结合
  2. 详细剖析ASP.NET上传文件方法
  3. 一见钟情VB.NET指针
  4. 快速了解VB.NET名空间
  5. 五分钟精通VB.NET创建类
责任编辑:佚名 来源: IT168
相关推荐

2010-01-15 17:51:51

VB.NET创建临时文

2010-01-19 14:42:43

VB.NET调用过程重

2010-01-19 18:24:29

VB.NET调用Win

2009-11-03 09:37:33

VB.NET重载

2010-01-21 14:27:46

VB.NET判断数组维

2009-11-04 11:32:20

VB.NET回调函数

2009-10-21 10:05:30

VB.NET运行环境

2010-01-12 15:21:48

VB.NET权限控制

2009-10-29 10:45:01

VB.NET设置控件

2009-12-01 16:34:21

PHP表单

2009-12-23 16:13:00

WPF Attache

2009-11-03 09:26:13

VB.NET方法

2009-10-29 16:23:42

VB.NET实现IEn

2009-10-28 10:15:48

VB.NET框架类库

2009-10-12 16:51:28

VB.NET使用Ora

2009-10-14 14:19:00

VB.NET创建表示层

2009-11-03 13:33:39

VB.NET对象列表

2009-10-20 09:28:18

VB.NET Prin

2009-11-02 14:55:52

VB.NET Obje

2010-01-15 18:56:58

VB.NET Fiel
点赞
收藏

51CTO技术栈公众号