我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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 子句关联事件处理程序时就要格外小心,以免发生重复关联。

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

JAVA异常处理方式是什么

这篇文章主要讲解了“JAVA异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA异常处理方式是什么”吧!1:try-catch结构:* 结构: * try{ * 可能出
2023-06-03

Java8处理数据的函数式方式是什么

本篇内容介绍了“Java8处理数据的函数式方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!处理数据的函数式方式Java 8 不仅仅添
2023-06-17

Vue+TypeScript中处理computed的方式是什么

今天小编给大家分享一下Vue+TypeScript中处理computed的方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一
2023-06-29

Python推导式数据处理方式是什么

今天小编给大家分享一下Python推导式数据处理方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言推导式是一种独特
2023-07-02

Java GUI事件处理方式是什么

本篇内容主要讲解“Java GUI事件处理方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java GUI事件处理方式是什么”吧!事件处理主要涉及:事件源,事件,事件处理者在GUI中事件
2023-06-21

Android触屏事件的处理方式是什么

Android触屏事件的处理方式是通过监听和响应触摸事件来实现。具体来说,可以通过以下几种方式来处理触屏事件:1. 在Activity或Fragment中重写onTouchEvent()方法,通过判断MotionEvent的动作类型来处理触
2023-08-11

Python常见异常的处理方式是什么

这篇文章主要介绍“Python常见异常的处理方式是什么”,在日常操作中,相信很多人在Python常见异常的处理方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python常见异常的处理方式是什么”的疑
2023-07-05

Android事件处理的两种方式是什么

这篇文章主要讲解了“Android事件处理的两种方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android事件处理的两种方式是什么”吧!安卓提供了两种方式的事件处理:基于回调的事
2023-07-05

SAP Cloud for Customer的inscreen_dataflow处理方式是什么

SAP Cloud for Customer的inscreen_dataflow处理方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。点击Sales Le
2023-06-03

vue常用的跨域处理方式是什么

这篇文章主要讲解了“vue常用的跨域处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue常用的跨域处理方式是什么”吧!设置express代理请求在基于vue-cli的项目中,在
2023-07-04

SpringBoot全局异常处理方式是什么

这篇文章主要讲解了“SpringBoot全局异常处理方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot全局异常处理方式是什么”吧!SpringBoot全局异常处理为
2023-06-25

VB.NET扩展方法的概念是什么

今天就跟大家聊聊有关VB.NET扩展方法的概念是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET编程语言的出现,在开发领域中起了很大的作用。它从出现至今,已经发展了各种
2023-06-17

vue处理响应式数据的方法是什么

这篇“vue处理响应式数据的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue处理响应式数据的方法是什么”文章吧
2023-07-05

C++对全局函数的处理方式是什么

这篇文章主要介绍“C++对全局函数的处理方式是什么”,在日常操作中,相信很多人在C++对全局函数的处理方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++对全局函数的处理方式是什么”的疑惑有所帮助!
2023-06-17

spring分布式调度处理的方法是什么

Spring分布式调度处理可以通过以下几种方式实现:1. 使用Spring Cloud Task:Spring Cloud Task是一个用于构建独立的任务和微服务的框架。它提供了任务的调度、执行和监控功能,可以在分布式环境下部署和执行任务
2023-10-23

vue中返回结果是promise的处理方式是什么

本文小编为大家详细介绍“vue中返回结果是promise的处理方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中返回结果是promise的处理方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-06-29

VB.NET中PadLeft方法的作用是什么

VB.NET中PadLeft方法的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VB.NET PadLeft方法PadLeft和PadRight是字符串类的两个方法,
2023-06-17

Vue3中响应式的特殊处理方法是什么

本篇内容介绍了“Vue3中响应式的特殊处理方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue2 vs vue3两个响应式更新的核
2023-07-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录