< 返回技术文档列表

VB.NET共享成员需要在什么情况下使用

发布时间:2021-09-01 02:14:33⊙投诉举报

本篇内容介绍了“VB.NET共享成员需要在什么情况下使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

  • VB.NET继承实现多态应用方法介绍

  • VB.NET接口实现多态实际代码编写

  • VB.NET并发性判断线程状态

  • VB.NET ProgressBar控件基本概念讲述

  • VB.NET ToolBar控件在实际应用中作用体现

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

注意:在其他的编程语言中,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共享成员需要在什么情况下使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注血鸟云网站,小编将为大家输出更多高质量的实用文章!


/template/Home/Zkeys/PC/Static