iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >VB.NET WithEvents怎么用
  • 581
分享到

VB.NET WithEvents怎么用

2023-06-17 20:06:16 581人浏览 八月长安
摘要

小编给大家分享一下VB.NET WithEvents怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!VB.net经过长时间的发展,很多用户都很了解VB.NET WithEvents了,这里我发表一下个人理解,和大家讨论

小编给大家分享一下VB.NET WithEvents怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

VB.net经过长时间的发展,很多用户都很了解VB.NET WithEvents了,这里我发表一下个人理解,和大家讨论讨论。VB除了可以用C#那样的方法来处理事件响应以外,还有从VB5继承下来的独特的事件处理方式——VB.NET WithEvents。

我喜欢称这种事件处理方式为静态的事件处理,书写响应事件的方法时就已经决定该方法响应的是哪一个事件,而C#则是在代码中绑定事件的。比如下面这个最简单的例子:

Public Class HandlerClass  Public WithEvents MyObj As EventClass   Private Sub MyObj_MyEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyObj.MyEvent  MsgBox("hello")  End Sub   Public Sub New()  MyObj = New EventClass  End Sub  End Class

代码中用到的EventClass是这样的:

Public Class EventClass  Public Event MyEvent As EventHandler   Protected Overridable Sub OnMyEvent(ByVal e As EventArgs)  RaiseEvent MyEvent(Me, e)  End Sub   Public Sub Test()  OnMyEvent(New EventArgs)  End Sub  End Class

我们来复习一下,这段代码隐式地给EventClass编写了两个方法——Add_MyEvent(EventHandler)和 Remove_MyEvent(EventHandler),实际上任何使用事件的上下文都是通过调用这两个方法来绑定事件和解除绑定的。C#还允许你书写自己的事件绑定/解除绑定的代码。

那么WithEvents是怎么工作的呢?VB.net的编译器在编译时自动将

Public WithEvents MyObj As EventClass

翻译成下面这个过程:

Private _MyObj As EventClass   Public Property MyObj() As EventClass  Get  Return _MyObj  End Get  Set(ByVal Value As EventClass)   If Not (Me._MyObj Is Nothing) Then  RemoveHandler _MyObj.MyEvent, AddressOf MyObj_MyEvent  End If   Me._MyObj = Value  If Me._MyObj Is Nothing Then Exit Property   AddHandler _MyObj.MyEvent, AddressOf MyObj_MyEvent   End Set  End Property

由此可见,当对VB.NET WithEvents变量赋值的时候,会自动触发这个属性以绑定事件。我们所用的大部分事件响应都是1对1的,即一个过程响应一个事件,所以这种VB.NET WithEvents静态方法是非常有用的,它可以显著增强代码可读性,同时也让VB.net中的事件处理非常方便,不像C#那样离开了窗体设计器就必须手工绑定事件。

不过在分析这段IL的时候,我也发现了VB.net在翻译时小小的问题,就是ldarg.0出现得过多,这是频繁使用Me或this的表现,所以我们在编码过程中一定要注意,除了使用到Me/this本身引用以外,使用它的成员时不要带上Me/this,比如Me.MyInt = 1就改成MyInt = 1,这样的小习惯会为你带来很大的性能收益。

看完了这篇文章,相信你对“VB.NET WithEvents怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: VB.NET WithEvents怎么用

本文链接: https://www.lsjlt.com/news/292941.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VB.NET WithEvents怎么用
    小编给大家分享一下VB.NET WithEvents怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!VB.NET经过长时间的发展,很多用户都很了解VB.NET WithEvents了,这里我发表一下个人理解,和大家讨论...
    99+
    2023-06-17
  • VB.NET Excel怎么用
    这篇文章给大家分享的是有关VB.NET Excel怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET Excel说起报表设计应用程序,无意微软的Excel是一支独秀,VB.NET Excel就是用来...
    99+
    2023-06-17
  • VB.NET中fnSimpleObjectToXML怎么用
    这篇文章主要为大家展示了“VB.NET中fnSimpleObjectToXML怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中fnSimpleObjectToXML怎么用”这篇...
    99+
    2023-06-17
  • VB.NET Environment类怎么用
    这篇文章主要为大家展示了“VB.NET Environment类怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET Environment类怎么用”这篇文章吧。在VB的以前版本中,...
    99+
    2023-06-17
  • VB.NET中StructLayout怎么用
    这篇文章主要为大家展示了“VB.NET中StructLayout怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中StructLayout怎么用”这篇文章吧。VB.NET编程语言...
    99+
    2023-06-17
  • VB.NET Data Grid怎么用
    小编给大家分享一下VB.NET Data Grid怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在以数据库为中心的应用程序中,主/从数据表视图是一种非常常见的设计模式。在这种模式下,***数据(主表)显示在一个用户界...
    99+
    2023-06-17
  • VB.NET常量怎么用
    小编给大家分享一下VB.NET常量怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!作为生存在这个时代的开饭人员来说,他们是幸福的。因为各种技术的产生,帮助他们...
    99+
    2023-06-17
  • VB.NET中Hashtable怎么用
    这篇文章给大家分享的是有关VB.NET中Hashtable怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET Hashtable用法相关概念详解1、VB.Net 2003下,在窗体设计起代码中加入:...
    99+
    2023-06-17
  • VB.NET Web Service怎么用
    这篇文章将为大家详细讲解有关VB.NET Web Service怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.Web Service为何物,我们为什么需要它:Web Service的主要功能就是...
    99+
    2023-06-17
  • VB.NET Web Forms怎么用
    小编给大家分享一下VB.NET Web Forms怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!尽管在Visual Basic 6中也有一些有关互联网功能的组件,例如WebClasses、Winsock和 WebBr...
    99+
    2023-06-17
  • VB.NET对象怎么用
    这篇文章主要介绍了VB.NET对象怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码重用简化了开发过程,而可视化继承之类的功能又使得代码重用更加方便。然而,代码重用并不...
    99+
    2023-06-17
  • VB.NET中Type怎么用
    这篇文章主要介绍了VB.NET中Type怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于VB.NET的数据类型想必大家都知道了,但是对与初学者来说数据类型还是一个难点...
    99+
    2023-06-17
  • VB.NET数组怎么用
    这篇文章主要介绍了VB.NET数组怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB.NET数组是程序中经常要使用到的一种数据类型,VB.NET中的数组,虽然语法结构等...
    99+
    2023-06-17
  • VB.NET Dock属性怎么用
    小编给大家分享一下VB.NET Dock属性怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Anchor属性可以被设定为Top,Bottom,Left和Rig...
    99+
    2023-06-17
  • VB.NET Textbox控件怎么用
    今天就跟大家聊聊有关VB.NET Textbox控件怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET编程语言是一款面相对象的开发语言。在这一语言中,有很多控件的使用技...
    99+
    2023-06-17
  • VB.NET指针怎么应用
    这篇文章主要介绍了VB.NET指针怎么应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB里使用指针不象C里那样灵活,用指针处理数据时都需要用CopyMemory将数据在指...
    99+
    2023-06-17
  • VB.NET怎么使用FileVersionInfo类
    这篇文章主要介绍VB.NET怎么使用FileVersionInfo类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!您是否曾经希望了解如何检索要在您自己的应用程序中使用的特定文件的属性?如果您要在 VB.NET 中开发...
    99+
    2023-06-17
  • VB.NET FileCopy语句怎么用
    这篇文章主要介绍VB.NET FileCopy语句怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET FileCopy语句还是比较常用的,于是我研究了一下VB.NET FileCopy语句,在这里拿出来...
    99+
    2023-06-17
  • VB.NET Shared变量怎么用
    这篇文章将为大家详细讲解有关VB.NET Shared变量怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB.NET是基于微软.NET Framework之上的面向对象的中间解释性语言,可以看作是V...
    99+
    2023-06-17
  • VB.NET NotifyIcon控件怎么用
    小编给大家分享一下VB.NET NotifyIcon控件怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!本文所使用的编程环境是Microsoft Visual...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作