VB.NET事件访问器特性介绍
创始人
2024-06-21 17:01:31
0

 VB.NET编程语言中有两种比较重要的访问器,一种是属性访问器,另一种则是VB.NET事件访问器。在这里我们会针对这两种访问器做一个详细的介绍,尤其是VB.NET事件访问器的相关应用方式。

VB.NET属性访问器的可访问性

以前,一个一直困扰我的问题就是VB.NET中Get和Set访问器必须具有相同的可访问性(Public、Friend、或Private)。如果你想创建一个只读的Public属性(只有Get被公开),那么在你的组件中并没有Set访问器来强制确认或者自定义属性的处理。

现在,VisualBasic2005中的Get和Set访问器可以设置不同的可访问性了,只是Set在访问上必须比Get更受限制:

  1. Private_myPropAsString   
  2. PublicPropertyMyProp()AsString   
  3. Get  
  4. Return_myProp  
  5. EndGet   
  6. FriendSet(ByValvalueAsString)  
  7. Ifvalue.Trim.Length>0Then  
  8. _myProp=value.Trim  
  9. Else  
  10. value="
  11. EndIf  
  12. EndSet   
  13. EndProperty 

无论是对于团队开发环境还是对于为了努力追求代码***重用率的个人开发者,这个特性都相当有用。

自定义VB.NET事件访问器

VB.NET事件访问器允许你定义一个自定义事件,并且,你可以控制在当客户端添加或删除了事件处理器并引发你的事件后所发生的情况。假设你有一个自定义的类,在该类中你引发了一个RateChanged事件。你可以按照下面两种方式其中一种来声明普通的事件:

  1. PublicEventRateChanged()  
  2. ''或者  
  3. PublicEventHoursChangedAsEventHandler 

用这种方式声明事件会产生一个自动托管的后备存储。换言之,系统将处理事件托管和分派的方式。通常情况下这就很好了,但是有时候,你需要对如何通知事件监听器的方式拥有更多的控制。

你可以利用这个新的Custom关键字来定义一个自定义事件以及它的访问修饰符。当你在事件声明上敲下回车键后,VisualBasic2005将为你自动生成代码原形,其生成方式就像Property访问器那样:

  1. PublicCustomEventNameChangedAsEventHandler  
  2. AddHandler(ByValvalueAsEventHandler)  
  3. ''把处理器与后备存储挂钩  
  4. EndAddHandler 软件开发网   
  5. RemoveHandler(ByValvalueAsEventHandler)  
  6. ''从后备存储中删除处理器  
  7. EndRemoveHandler   
  8. RaiseEvent(ByValsenderAsObject,ByValeAsEventArgs)  
  9. ''激发监听器  
  10. EndRaiseEvent   
  11. EndEvent 

当客户端为你的事件添加或删除了一个处理器后,AddHandler或RemoveHandler历程开始运作。而当事件被引发后,RaiseEvent历程开始执行。通过这种方式,你可以按照你想要为事件托管后备存储的方式来采取特别的操作。当你用这种方式创建了这些自定义事件,你就可以把该事件当作属性来看待。

一个展示了自定义VB.NET事件访问器有用一面的例子,就是当你的对象是可序列化的、并且你有一个可以被一个不可序列化的委托对象处理的事件的时候。如果你试图通过一个普通事件来序列化你的对象,序列化就会失败,这是因为后备该事件的存储是不可序列化的。

【编辑推荐】

  1. VB.NET访问Iframe具体代码实现方式
  2. VB.NET调用SQL Server存储过程
  3. VB.NET添加自动查询功能实现技巧概述
  4. VB.NET关于对话框制作技巧分享
  5. VB.NET Mid函数相关应用方法解析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...