VB.NET共享成员需要在何种情况下使用
创始人
2024-06-20 23:01:26
0

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共享成员的具体使用方式就为大家介绍到这里。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...