本篇内容介绍了“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"的值,其代码如下:
Imports system
Namespace ANameSpace
Module Module1
Class PortDescriptor
Public Shared Load as Integer
Private strDesc as String
Property descript as String
Get
descript=strDesc
End Get
Set
strDesc=Value
End Set
End Property
End Class
Shared Sub Main()
Dim PD1 as PortDescriptor=
New PortDescriptor
Dim PD2 as PortDescriptor=
New PortDescriptor
PD1.descript="Idle"
PD1.Load=80
Console.WriteLine("PD1
Descript=:"&PD1.descript)
Console.WriteLine("PD1
Load=:"&PD1.Load)
Pd2.descript="Activr"
Pd2.Load=540
Console.WriteLine("PD2
Descript=:"&Pd2.descript)
console.WriteLine("PD2
Load=:"&PD2.Load)
Console.WriteLine("PD1
Descript now=:"&Pd1.descript)
Console.WriteLine("PD1 Load
now=:"&PD1.Load)
End Sub
End Module
End Namespace
“VB.NET共享成员需要在什么情况下使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!