共享或类成员
随着对象的功能越来越强大,我们有时想访问一些变量、函数或者程序而不需要一个实际的对象实例。在以前,我们可以键入这类型的代码到一个代码模块中,而不管程序是否跟一些类有关。
共享方法
在VB.NET中我们有了一个较好的改变。不仅一个类可以拥有所有正常的方法和属性(这些方法和属性可以由创建类的实例来实现)而且它们可以拥有一些不需要创建类的实例的方法,这些方法就是本教程要介绍的共享方法。这些方法在其它的编程语言中也称为静态方法或者类方法。
一个共享方法不能作为一种普通的方法,通过一个对象的实例来访问,而是可以从类直接访问。下面是共享方法的一个简单的例子:
Public Class Math
Shared Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
我们可以不用实例化一个Math对象,就可以访问,代码如下:
Dim result As Integer
result = Math.Add(5, 10)
现在请再仔细看看,这里我们不是使用一个变量,而是直接使用类的方法。如果用通常的方法就将导致错误,但是利用了共享方法一切都变得可以接受了。
共享方法不仅可以通过通常的方法来访问而且可以在不需要创建一个对象的条件下提供访问的功能。实际上,当一个共享方法被调用的时候,没有任何对象被创建,它就象再模块中的一个程序可以直接被调用。
共享方法和其它普通的方法一样也可以被重载,所以可以利用相同的共享方法来创建一系列变化的方法,每一种方法有不同的参数列表。
共享方法的缺省的辖域是Public。我们也可以载声明中将共享方法设置为Friend、Protected或者Private。实际上,当重载方法的时候,只要参数列表不同我们就有不同的作用域。
究竟共享方法是如何使用的呢,下面我们看看一个例子。当我们想为输入打开一个文本文件的时候,我们可以在File类中使用一个共享代码,如下:
Dim infile As StreamReader = File.OpenText(words.txt)
Dim strIn As String
str = infile.ReadLine()
这里没有任何的类型的文件被创建。OpenText方法是一个共享方法,它打开一个文件并且返回一个StreamReader对象。另外一个例子来自System.Guid数据类型。这个类描述了一个全局的独特的用户ID(GUID)数值,但是我们可以通过一个共享方法来创建一个新的方法。
Dim guidID As Guid()
guidID = Guid.NewGuid()
这个NewGuid方法是直接从Guid类中调用的。它创建了一个新的Guid对象并且返回一个数值。
更多内容请看共享上网专题、三机互联与共享专题、局域网共享专题专题,或进入讨论组讨论。
【深 度 阅 读】 相 关 文 章
随着对象的功能越来越强大,我们有时想访问一些变量、函数或者程序而不需要一个实际的对象实例。在以前,我们可以键入这类型的代码到一个代码模块中,而不管程序是否跟一些类有关。
共享方法
在VB.NET中我们有了一个较好的改变。不仅一个类可以拥有所有正常的方法和属性(这些方法和属性可以由创建类的实例来实现)而且它们可以拥有一些不需要创建类的实例的方法,这些方法就是本教程要介绍的共享方法。这些方法在其它的编程语言中也称为静态方法或者类方法。
一个共享方法不能作为一种普通的方法,通过一个对象的实例来访问,而是可以从类直接访问。下面是共享方法的一个简单的例子:
Public Class Math
Shared Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
我们可以不用实例化一个Math对象,就可以访问,代码如下:
Dim result As Integer
result = Math.Add(5, 10)
现在请再仔细看看,这里我们不是使用一个变量,而是直接使用类的方法。如果用通常的方法就将导致错误,但是利用了共享方法一切都变得可以接受了。
共享方法不仅可以通过通常的方法来访问而且可以在不需要创建一个对象的条件下提供访问的功能。实际上,当一个共享方法被调用的时候,没有任何对象被创建,它就象再模块中的一个程序可以直接被调用。
共享方法和其它普通的方法一样也可以被重载,所以可以利用相同的共享方法来创建一系列变化的方法,每一种方法有不同的参数列表。
共享方法的缺省的辖域是Public。我们也可以载声明中将共享方法设置为Friend、Protected或者Private。实际上,当重载方法的时候,只要参数列表不同我们就有不同的作用域。
究竟共享方法是如何使用的呢,下面我们看看一个例子。当我们想为输入打开一个文本文件的时候,我们可以在File类中使用一个共享代码,如下:
Dim infile As StreamReader = File.OpenText(words.txt)
Dim strIn As String
str = infile.ReadLine()
这里没有任何的类型的文件被创建。OpenText方法是一个共享方法,它打开一个文件并且返回一个StreamReader对象。另外一个例子来自System.Guid数据类型。这个类描述了一个全局的独特的用户ID(GUID)数值,但是我们可以通过一个共享方法来创建一个新的方法。
Dim guidID As Guid()
guidID = Guid.NewGuid()
这个NewGuid方法是直接从Guid类中调用的。它创建了一个新的Guid对象并且返回一个数值。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- (24953次浏览)VB.NET 入门教程
- (5828次浏览)VB.Net图解入门
- (3737次浏览)细说VB.NET
- (3575次浏览)VB.NET菜单设计初级入门
- (3456次浏览)全面剖析VB.NET
- (2638次浏览)一个vb.net的用户登陆页面代码
- (2467次浏览)VB.NET中访问数据方法大全
- (2222次浏览)VB.NET应用集锦
- (2140次浏览)VB和VB.NET中的XML操作
- (2093次浏览)用VB.NET设计各种形状的窗体界面



