VB.NET事件访问器特性介绍

开发 后端
VB.NET事件访问器可以让你定义一个自定义的时间,而且能够公职事件处理器,然后引发你的事件后所发生的情况。

 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="<novalue>" 
  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函数相关应用方法解析
责任编辑:曹凯 来源: mscto.com
相关推荐

2009-10-23 17:03:18

VB.NET事件编程

2010-01-12 18:12:58

VB.NET事件

2009-10-23 17:22:48

VB.NET编程

2009-10-28 09:55:29

VB.NET MyCl

2010-01-15 18:30:50

VB.NET Dlli

2009-10-13 14:38:10

VB.NET访问类型

2009-11-11 13:24:29

VB.NET事件

2009-11-04 09:32:12

VB.NET Auto

2010-01-20 14:17:28

VB.NET Prop

2009-10-12 15:02:51

VB.NET动态控件

2009-11-10 10:28:20

VB.NET诞生

2010-01-21 16:45:00

VB.NET继承规则

2010-01-07 15:25:11

VB.NET数组

2009-11-03 09:37:33

VB.NET重载

2010-01-22 10:41:33

VB.NET声明结构

2009-10-12 13:19:14

VB.NET线程同步

2009-11-10 12:42:47

VB.NET Prin

2010-01-15 18:56:58

VB.NET Fiel

2009-10-27 11:39:03

VB.NET事件处理程

2010-01-20 13:42:10

VB.NET访问INIGetPrivateP
点赞
收藏

51CTO技术栈公众号