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

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

成都网络公司-成都网站建设公司创新互联十载经验成就非凡,专业从事网站建设、成都做网站,成都网页设计,成都网页制作,软文营销广告投放等。十载来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!

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

注意:在其他的编程语言中,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共享成员的具体使用方式就为大家介绍到这里。

本文名称:VB.NET共享成员需要在何种情况下使用
标题路径:http://www.mswzjz.cn/qtweb/news3/262903.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能