iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >VB.NET Override的处理方式是什么
  • 405
分享到

VB.NET Override的处理方式是什么

2023-06-17 17:06:31 405人浏览 安东尼
摘要

VB.NET Override的处理方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在学习了VB.net这门编程语言后,大家会慢慢的发现这门语言中隐藏的

VB.NET Override的处理方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在学习了VB.net这门编程语言后,大家会慢慢的发现这门语言中隐藏的知识是很广的,有很多功能值得我们去深入的研究。比如VB.NET Override就是其中一个比较难掌握的知识点。在类或控件的继承中,子类或子控件封装了父类的所有函数,其中包括事件处理程序。

继承事件处理程序

当组件被继承时,它的所有成员都被封装到子类中。事件处理程序是响应特定事件的方法,是组件成员之一,因而也被继承。请看一个典型的事件处理程序:

  1. Private Sub Button1_Click(ByVal 
    sender As System.Object, 
    ByVal e as _   

  2. System.EventArgs) Handles
     Button1.Click   

  3. Static Counter as Integer = 0   

  4. Counter += 1   

  5. MessageBox.Show (" This button
     has been clicked " & _   

  6. Counter.ToString() & " times.")   

  7. End Sub  

我们看到,宣告部分末尾的 Handles 子句把处理程序关联到特定的事件上。具体而言,上述代码将在 Button1.Click 事件发生时运行。这就是用于定义事件处理程序的典型语法。

为了实现VB.NET Override,你必须使用 Overridable 关键字,并且重新定义其可见性为 Protected 、 Protected Friend 或者 Public 。下面示范如何 override 事件处理程式:

  1. Protected Overridable Sub 
    Button1_Click(ByVal sender 
    As System.Object, _   

  2. ByVal e as System.EventArgs) 
    Handles Button1.Click   

  3. Static Counter as Integer = 0   

  4. Counter += 1   

  5. MessageBox.Show (" This button 
    has been clicked " & _   

  6. Counter.ToString() & " times.")   

  7. End Sub  

在组件中继承事件处理程序

事件处理程序的VB.NET Override固然与其它方法的 override 大同小异,有一点却不得不提:在 override 事件处理程序时必须除去 Handles 子句。

如何 override 组件的事件处理程序

1) 在事件处理程序的宣告部分加入 Overrides 关键字

请注意:不要附加 Handles 子句。因为父类的处理程序已经关联了特定事件,子类将继承这一切。换句话说,父类所关联的事件可以激活子类的处理程序,因而这里的 Handles 子句是多余的。

下面示范如何 override 前述事件处理程序:

  1. Protected Overrides Sub 
    Button1_Click(ByVal sender 
    As System.Object, _   

  2. ByVal e as System.EventArgs)   

  3. Static Counter as Integer = 0   

  4. Counter += 1   

  5. MessageBox.Show (" This inherited 
    button has been clicked " & _   

  6. Counter.ToString() & " times.")   

  7. End Sub  

2) 为什么不需要 Handles 子句

前面提到,我们没有使用关联事件的 Handles 子句并不是一个疏漏,而是由 .NET 框架的事件处理机制所决定的。父类中的 Handles 子句将事件处理程序关联到特定事件上,这种关联将被子类继承。因此,即令子类中没有 Handles 子句,父类所关联的事件也能激活子类的事件处理程序。倘若此时加上 Handles 子句,则处理程序将被再次关联到事件上。重复关联的后果是处理程序将被连续激活两次。例如:

  1. ' 错误的代码   

  2. Protected Overrides Sub 
    Button1_Click(ByVal sender As 
    System.Object, _   

  3. ByVal e as System.EventArgs) Handles
     Button1.Click   

  4. Static Counter as Integer = 0   

  5. ' 本例中使用了 Handles 子句,   

  6. ' 因而每当按钮 Button1 被点击一次,   

  7. ' 变量 Counter 将会增加两次 ;   

  8. Counter += 1   

  9. ' 消息框也会弹出两次,   

  10. ' 显示的内容也将违背设计意图   

  11. MessageBox.Show (" This inherited 
    button has been clicked " & _   

  12. Counter.ToString() & " times.")   

  13. End Sub  

结论

在 Visual Basic .NET 中,事件处理程序的VB.NET Override可能造成难以侦错的 bug 。例如在使用 Handles 子句关联事件处理程序时就要格外小心,以免发生重复关联。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: VB.NET Override的处理方式是什么

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

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

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

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

下载Word文档
猜你喜欢
  • VB.NET Override的处理方式是什么
    VB.NET Override的处理方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在学习了VB.NET这门编程语言后,大家会慢慢的发现这门语言中隐藏的...
    99+
    2023-06-17
  • VB.NET构造函数实际处理方式
    这篇文章给大家介绍VB.NET构造函数实际处理方式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在开发领域,已经出现了许多种开发语言供编程人员随自己的需求进行选择应用。比如VB.NET语言就可以对有特定需求的开发人员进...
    99+
    2023-06-17
  • JAVA异常处理方式是什么
    这篇文章主要讲解了“JAVA异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA异常处理方式是什么”吧!1:try-catch结构:*  结构: * ...
    99+
    2023-06-03
  • Java8处理数据的函数式方式是什么
    本篇内容介绍了“Java8处理数据的函数式方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!处理数据的函数式方式Java 8 不仅仅添...
    99+
    2023-06-17
  • Vue+TypeScript中处理computed的方式是什么
    今天小编给大家分享一下Vue+TypeScript中处理computed的方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-06-29
  • Angular中处理错误的方式是什么
    本篇内容主要讲解“Angular中处理错误的方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Angular中处理错误的方式是什么”吧!什么是Angula...
    99+
    2024-04-02
  • 什么是VB.NET正则表达式
    这篇文章主要介绍了什么是VB.NET正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.什么是VB.NET正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的...
    99+
    2023-06-17
  • java中Overload和Override的区别是什么
    这篇文章主要为大家展示了“java中Overload和Override的区别是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中Overload和Ov...
    99+
    2024-04-02
  • C# 中override和overload的区别是什么
    今天就跟大家聊聊有关C# 中override和overload的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# override和overload特点重载(Overlo...
    99+
    2023-06-17
  • Python推导式数据处理方式是什么
    今天小编给大家分享一下Python推导式数据处理方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言推导式是一种独特...
    99+
    2023-07-02
  • Java GUI事件处理方式是什么
    本篇内容主要讲解“Java GUI事件处理方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java GUI事件处理方式是什么”吧!事件处理主要涉及:事件源,事件,事件...
    99+
    2023-06-21
  • Python常见异常的处理方式是什么
    这篇文章主要介绍“Python常见异常的处理方式是什么”,在日常操作中,相信很多人在Python常见异常的处理方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python常见异常的处理方式是什么”的疑...
    99+
    2023-07-05
  • Android触屏事件的处理方式是什么
    Android触屏事件的处理方式是通过监听和响应触摸事件来实现。具体来说,可以通过以下几种方式来处理触屏事件:1. 在Activit...
    99+
    2023-08-11
    Android
  • SAP Cloud for Customer的inscreen_dataflow处理方式是什么
    SAP Cloud for Customer的inscreen_dataflow处理方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。点击Sales Le...
    99+
    2023-06-03
  • vue常用的跨域处理方式是什么
    这篇文章主要讲解了“vue常用的跨域处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue常用的跨域处理方式是什么”吧!设置express代理请求在基于vue-cli的项目中,在...
    99+
    2023-07-04
  • Android事件处理的两种方式是什么
    这篇文章主要讲解了“Android事件处理的两种方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android事件处理的两种方式是什么”吧!安卓提供了两种方式的事件处理:基于回调的事...
    99+
    2023-07-05
  • SpringBoot全局异常处理方式是什么
    这篇文章主要讲解了“SpringBoot全局异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot全局异常处理方式是什么”吧!SpringBoot全局异常处理为...
    99+
    2023-06-25
  • C#中 new和override的区别是什么
    本篇文章为大家展示了C#中 new和override的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方...
    99+
    2023-06-17
  • C++对全局函数的处理方式是什么
    这篇文章主要介绍“C++对全局函数的处理方式是什么”,在日常操作中,相信很多人在C++对全局函数的处理方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++对全局函数的处理方式是什么”的疑惑有所帮助!...
    99+
    2023-06-17
  • vue处理响应式数据的方法是什么
    这篇“vue处理响应式数据的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue处理响应式数据的方法是什么”文章吧...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作