VB.NET共享成员高手经验谈

学习VB.NET时,你可能会遇到VB.NET共享成员问题,这里将介绍VB.NET共享成员问题的解决方法,在这里拿出来和大家分享一下实例访问VB.NET共享成员。

柳林网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

大家都知道静态成员在VB中叫做共享成员,虽然刚接受起来有点别扭,但“VB.NET共享成员”的确是名副其实的:

 
 
 
  1. Public Class Class1  
  2. Public Shared i As Integer  
  3. 'Other none-shared members  
  4. End Class 

不但像在C#中那样,可以用Class1.i访问VB.NET共享成员i,还可以用实例变量来访问:

 
 
 
  1. Dim c1 As New Class1  
  2. c1.i = 100 

就像i是c1的成员一样!当然只有一个i,任何实例去修改i的值都将导致所有i的值改变(因为其实只有一个)。甚至Me和MyClass也可以访问VB.NET共享成员。

 
 
 
  1. Me.i = 100 
  2. MyClass.i = 100 

这在C#中是不可能做到的,一个纯正的C#程序员看到这些代码一定会觉得匪夷所思。为了揭示它的工作原理,我们可以做下列实验:

 
 
 
  1. Dim c1 As Class1  
  2. c1.i = 100 

注意,这里的c1为Nothing!,即使是Nothing的变量也可以访问VB.NET共享成员,而且不会出错。接下来我们实验更极端的情况:

 
 
 
  1. Dim o As Object = New Class1  
  2. o.i = 100 

结果——失败,不能通过后期绑定访问VB.NET共享成员。现在结果已经很明显,只有在VB明确了解对象类型的情况下,才能使用实例访问VB.NET共享成员,VB会自动判断类型,然后将所有对共享成员访问的语句改写成

 
 
 
  1. Class1.i = 100 

这样的语法。Delphi也支持这一有趣的特征,而且李维在《Inside VCL》中将此说成Delphi.NET相对于.NET的扩展之一。

分享文章:VB.NET共享成员高手经验谈
网页网址:http://www.36103.cn/qtweb/news14/8464.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

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