转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
Henry的VB.NET之旅(三)—共享成员         ★★★★

Henry的VB.NET之旅(三)—共享成员

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2389 更新时间:2009/4/23 19:01:59

                                   Henry的VB.NET之旅(三)—共享成员

                          韩睿

 

我开始佩服起大李来了,同时对VB.NET充满了好奇与了解的渴望。

“除了全局变量外,还有什么好办法吗?”我迫不急待地想知道结果。

“可以使用共享成员。”大李依然是那么淡淡然,“VB.NET现在是支持真正的面向对象编程,可以继承、使用多态、共享成员和静态成员。共享成员就是在所有类和所定义派生类的实例之间共享的方法、属性、字段和事件。所有使用类创建的对象都可以访问相同的数据、共享实现过程,并且收到相同的激发事件。”

“这么好呀,那怎么实现呢?”我好象又回到了课堂上,满脑都是无知的符号。

“很简单,在Public或Private成员修饰符后加上Shared关键字即可了。Shared关键字指示一个或多个被声明的编程元素将被共享。共享元素不关联于某类或结构的特定实例。可以通过使用类名或结构名称或者类或结构的特定实例的变量名称限定共享元素来访问它们。你来看这段代码

 

Public Class ShareClass  

   Public Shared SharedValue As String  

   Public Shared Sub ShareMethod()     

      MsgBox("This is a shared method.")   

   End Sub

End ClassSub

TestShared()  

   Dim Shared1 As New ShareClass()   '''' 创建了类的一个实例.  

   Dim Shared2 As New ShareClass()   ''''创建了类的第二个实例.  

   Shared1.SharedValue = "Share Value 1"    ''''给共享字段赋值. 

   Shared2.SharedValue = "Share Value 2"   '''' 重写共享字段的值  

   ShareClass.ShareMethod()     ''''不用创建实例就可以调用类的方法.

End Sub

 

“有两个要点,一个是共享成员如果是方法或属性,我们不用创建实例就可以直接用‘类名.共享成员’的方法进行调用;第二个要点,共享字段是唯一的,你来说说运行后Shared1.SharesValue的值是多少?”

我头脑里转了两圈,既然说共享字段是唯一的,那么Shared1.SharedValue和Shared2.SharedValue其实对应的是同一个共享字段,所以么,我立刻大声说:“是Share Value 2。因为被Shared2.SharedValue修改了。”

“没错!”大李又一次绽放了会心的微笑,真是对我的最高奖赏。“那你还不动手修改一下你的程序?”

好!说做就做。既然共享属性在其调用的时候是不用实例化的,那么我最好能借助构造一个共享属性来实现。并且要能够判断其实例是否存在或是否被销毁,如果不存在就构造一个新的窗体实例,如果存在就对其进行调用:

Private Shared m_vb6FormDefInstance As Form1

Public Shared Property DefInstance() As Form1

    Get

If m_vb6FormDefInstance Is Nothing OrElse _

           m_vb6FormDefInstance.IsDisposed Then   判断窗体实例是否存在

                m_vb6FormDefInstance = New Form1()  

        End If

        DefInstance = m_vb6FormDefInstance

     End Get

     Set(ByVal Value As Form1)

         m_vb6FormDefInstance = Value

     End Set

End Property

 

在Form2中也加入相似的代码,只不过把Form1改为Form2。调用它是如此的方便:

Form1中的代码

[1] [2]  下一页


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构
[VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体  [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)
[VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(一)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台