VB.NET共享成员需要在何种情况下使用

开发 后端
VB.NET共享成员同时也会被称为Static或者class成员,主要独立于任何一个特定的类的实例。我们会在这里为大家介绍VB.NET共享成员的适用环境。

VB.NET作为一款优秀的面向对象语言,其中拥有很多独特的性质吸引着开发人员去使用它来完成程序开发。其中VB.NET共享成员就是被类的实例所共享的属性、过程、字段等等。在VB.NET的继承中,在所有的类的实例中把一个数据成员或函数的一个单独的实例设置成共享是非常有用的。#t#

共享成员独立于任何一个特定的类的实例。共享的过程在对象中必须显式的声明。由于这个原因,在共享方法中,引用不共享的成员是允许的。公有的共享的成员可以远程的访问,并且可以在对象中后期绑定。

注意:在其他的编程语言中,VB.NET共享成员也被称为Static或者class成员。

有一个类库,该类库含有一些附加的过程,这些过程对于这个类库而言是一些概念性的部分,需要单独运行,并需要用户去声明这个类中的一些类型。

假设开发了一个应用程序,它需要知道有多少个用户现在登录了该应用程序。当用户安装了用户的应用程序后,注册信息被写入了注册表,而且用户的运行程序每次在运行的时候都要访问用户声明的UserInfo对象。一个Long型共享成员UserCount就可以跟踪用户的个数,并且用一个属性CanCreateUser来检查UserCount共享成员,是否要声明已经达到了登录人数的极限***值,并且初始化UserInfo的值来决定是让用户进入。

用户也可以在以下情况使用VB.NET共享成员,假设有很多对象,而且这些对象需要共享一些信息。例如,假设已经建立了一个制定行程计划的软件用来计算所选择的一个旅游城市离国会大厦是不是中100里之内。在City类中有Latitude和Longitude成员。对于半径在100里之内的城市,City的共享的NearCapitol属性为"Incremented",而对于半径在100里之外的城市,City的共享的NearCapitol属性为"Decremented".

在以上这些情况时,如果没有这些VB.NET共享成员的话,需要建立一个a.bas模块来记录这些信息,这样做可能会给代码的维护带来一些困难,而且理解类也会更加困难.在一个类中保留共享成员会是用户更好地理解它们的目的.而且在工程中,也将会更好地重用这些代码.

下面这个例子声明了一个具有一个属性和共享数据成员的类.当用户运行这个程序的时候,每一个PortDescriptor类的对象均有一个惟一的"Descript"属性,但是共享着一个共享的数据成员Load,在对象PD1中改变Load属性的话将会改变对象PD2的属性"Load"的值,其代码如下:

 

  1. Imports system  
  2. Namespace ANameSpace  
  3. Module Module1  
  4. Class PortDescriptor  
  5. Public Shared Load as Integer  
  6. Private strDesc as String  
  7. Property descript as String  
  8. Get  
  9. descript=strDesc 
  10. End Get  
  11. Set  
  12. strDesc=Value 
  13. End Set  
  14. End Property  
  15. End Class  
  16. Shared Sub Main()  
  17. Dim PD1 as PortDescriptor=
    New PortDescriptor  
  18. Dim PD2 as PortDescriptor=
    New PortDescriptor  
  19. PD1.descript="Idle" 
  20. PD1.Load=80 
  21. Console.WriteLine("PD1 
    Descript=:"&PD1.descript)  
  22. Console.WriteLine("PD1 
    Load=:"&PD1.Load)  
  23. Pd2.descript="Activr" 
  24. Pd2.Load=540 
  25. Console.WriteLine("PD2 
    Descript=:"&Pd2.descript)  
  26. console.WriteLine("PD2 
    Load=:"&PD2.Load)  
  27. Console.WriteLine("PD1 
    Descript 
    now=:"&Pd1.descript)  
  28. Console.WriteLine("PD1 Load 
    now=:"&PD1.Load)  
  29. End Sub  
  30. End Module  
  31. End Namespace 

VB.NET共享成员的具体使用方式就为大家介绍到这里。

责任编辑:曹凯 来源: 编程入门网
相关推荐

2009-10-28 13:35:25

VB.NET共享成员

2010-01-18 14:54:00

VB.NET共享成员变

2009-10-13 14:42:30

VB.NET静态成员

2009-11-03 10:51:33

VB.NET共享

2010-01-19 15:08:18

VB.NET对象成员

2010-01-12 18:28:28

VB.NET共享变量

2010-01-11 16:04:10

VB.NET使用wit

2009-10-14 17:08:44

VB.NET使用Fil

2009-11-03 13:48:02

VB.NET枚举

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-28 12:28:52

VB.NET资源使用

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-16 11:38:47

VB.NET使用Ali

2009-11-03 11:27:30

VB.NET界面

2009-10-16 10:14:26

VB.NET使用Fil

2009-11-02 13:54:27

VB.NET shel

2009-10-13 15:20:02

VB.NET使用Dra

2009-10-12 13:11:48

VB.NET使用线程

2009-10-20 10:29:30

VB.NET使用Sor

2010-01-18 18:20:49

VB.NET使用API
点赞
收藏

51CTO技术栈公众号