c#中关于事件的继承问题

问题描述

问题如下:现在有一个classA,该类中有一个事件message;新建一个类classB,我希望在classB中能够完整的继承message事件;(代码如何处理??)而后classC:classB,我可以使用message事件。不知道我的问题表述清楚没有,希望得到各位大侠的回答,谢谢啊

解决方案

本帖最后由 gaishe 于 2011-06-10 16:31:58 编辑
解决方案二:
现在的不完整吗...
解决方案三:
只要该eventhandler是protected或public的,就可以用,你可以用改eventhandler绑定a,b,c任何一个中的方法
解决方案四:
http://www.cnblogs.com/anjou/archive/2007/06/19/788987.html
解决方案五:
直接继承就可以了。子类不需要额外的代码。
解决方案六:
4楼:不知道直接继承如何实现?
解决方案七:
引用楼主gaishe的回复:

问题如下:现在有一个classA,该类中有一个事件message;新建一个类classB,我希望在classB中能够完整的继承message事件;(代码如何处理??)而后classC:classB,我可以使用message事件。不知道我的问题表述清楚没有,希望得到各位大侠的回答,谢谢啊

我个人感觉,在C中你完全可以使用事件message.不明白你说的完整的继承是什么意思
解决方案八:
引用3楼wknight_it的回复:

http://www.cnblogs.com/anjou/archive/2007/06/19/788987.html

这个资料我看了一下,还是没看明白。请问:我的是3个类,A类是现有的封装的类,不能修改,B类是我自己要封装的类,我希望在B中继承A中的事件,进而使得C类能够使用B类中的事件。
解决方案九:
引用6楼kingdom_0的回复:

引用楼主gaishe的回复:问题如下:现在有一个classA,该类中有一个事件message;新建一个类classB,我希望在classB中能够完整的继承message事件;(代码如何处理??)而后classC:classB,我可以使用message事件。不知道我的问题表述清楚没有,希望得到各位大侠的回答,谢谢啊我个人感觉,在C……

请问怎么c中怎么能够直接使用A中的事件呢?
解决方案十:
本帖最后由 caozhy 于 2011-06-10 16:49:32 编辑
解决方案十一:
引用9楼caozhy的回复:

引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v4.0.30319//C:ProgramFilesReferenceAssembliesMicrosoftFramework.NETFrameworkv4.0ProfileClien……

我的问题是不是没问清楚啊,我是想在C类中使用B类在A类中继承的事件。就是说A类中原来有一个事件,我需要在B类中继承(或者是说我需要在B类中有一个同A类中有同样功能的事件),而后我可以使用B类中的事件,而不直接使用A类中的事件。
解决方案十二:
貌似不行吧,编译出错的说,话说在子类中可以为事件绑定方法不就好了,想触发,就调用基类的方法来触发
解决方案十三:
引用10楼gaishe的回复:

引用9楼caozhy的回复:引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v4.0.30319//C:ProgramFilesReferenceAssembliesMicrosoftFramework.NETFramewor……

你到底想说有个事件还是有个事件处理函数?
解决方案十四:
字段,常量,事件都是类的数据。个人感觉能不能访问关注访问修饰符就可以了。
解决方案十五:
引用2楼dazhabai的回复:

只要该eventhandler是protected或public的,就可以用,你可以用改eventhandler绑定a,b,c任何一个中的方法

对呀
解决方案:
引用12楼caozhy的回复:

引用10楼gaishe的回复:引用9楼caozhy的回复:引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v4.0.30319//C:ProgramFilesReferenceAssembliesMicrosoftF……

谢谢你啊!我要说的是事件,不是函数:A类中原来有一个事件,我需要在B类中实现一个同A类中有同样功能的事件。
解决方案:
引用15楼gaishe的回复:

引用12楼caozhy的回复:引用10楼gaishe的回复:引用9楼caozhy的回复:引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v4.0.30319//C:ProgramFilesReferenceA……

结果把A类的隐藏?
解决方案:
???????直接继承就ok了B里一行代码都不要处理lz啊,你想想看如果我继承了了微软提供的Button写了一个myButton,你认为这个myButton他会没有Click事件???
解决方案:
引用16楼caozhy的回复:

引用15楼gaishe的回复:引用12楼caozhy的回复:引用10楼gaishe的回复:引用9楼caozhy的回复:引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v4.0.30319//C:Prog……

不知道您说的隐藏是什么意思?就是我想直接使用B中的事件,而不使用A中的事件。
解决方案:
我建议你用NVI(Non-VirtualInterface)模式来设计。也就是你看到的OnXXX()的虚方法,然后让子类重写。
解决方案:
引用18楼gaishe的回复:

引用16楼caozhy的回复:引用15楼gaishe的回复:引用12楼caozhy的回复:引用10楼gaishe的回复:引用9楼caozhy的回复:引用5楼gaishe的回复:4楼:不知道直接继承如何实现?C#code#regionAssemblySystem.Windows.Forms.dll,v……

对,就是这个意思。
解决方案:
引用19楼caozhy的回复:

我建议你用NVI(Non-VirtualInterface)模式来设计。也就是你看到的OnXXX()的虚方法,然后让子类重写。

好像还挺麻烦。小生愚钝,有没有具体的例子啊?
解决方案:
引用17楼wanghui0380的回复:

???????直接继承就ok了B里一行代码都不要处理lz啊,你想想看如果我继承了了微软提供的Button写了一个myButton,你认为这个myButton他会没有Click事件???

如果是我又有一个myButtonButton继承于myButton呢?如何保证我的myButtonButton也有click事件呢?
解决方案:
基类里使用publicvoidXXX(){onXXX();}protectedvirtualonXXX(){}子类使用protectedoverideonXXX(){}

时间: 2024-09-10 11:17:42

c#中关于事件的继承问题的相关文章

ionic 的路由让ion-nav-back-button 中的事件在不同子页面运行或者不运行

问题描述 ionic 的路由让ion-nav-back-button 中的事件在不同子页面运行或者不运行 其中goBack() 的方法在继承这个页面的时候 ,有的子页面会运行这个方法.有的子页面不会运行这个方法....这个需要在路由里面配置什么东西吗 解决方案 个人建议: 自己实现goBack自己实现具体的返回逻辑. 从后台将要返回的url放在scope中,当点击goBack的时候从scope中获取url,进行返回. 这样逻辑更加的好控制.

wxpython中自定义事件的实现与使用方法分析_python

本文实例讲述了wxpython中自定义事件的实现与使用方法.分享给大家供大家参考,具体如下: 创建自定义事件的步骤: ① 定义事件类,该事件类必须继承自wx.PyCommandEvent,并定义get和set方法来获取和设置事件参数. ② 创建一个事件类型和一个绑定器对象去绑定该事件到特定的对象. ③ 创建自定义事件对象,设置事件参数,并且使用ProcessEvent()方法将这个实例引入事件处理系统. ④ 绑定自定义事件的event handler. ⑤ 在event handler中响应事件

详细分析Android中onTouch事件传递机制_Android

onTach介绍 ontach是Android系统中整个事件机制的基础.Android中的其他事件,如onClick.onLongClick等都是以onTach为基础的. onTach包括从手指按下到离开手机屏幕的整个过程,在微观形式上,具体表现为action_down.action_move和action_up等过程. onTach两种主要定义形式如下: 1.在自定义控件中,常见的有重写onTouchEvent(MotionEvent ev)方法.如在开发中经常可以看到重写的onTouchEv

快速掌握Android开发中Touch事件分发机制

Touch事件分发中只有两个主角:ViewGroup和View.Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理. View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析. ViewGroup的相关事件有三个:onInterceptTouchEvent.dispatchTouchEvent.onTouchEvent.View的相关事件只有两个:

Node.js中使用事件发射器模式实现事件绑定详解_node.js

在Node里,很多对象都会发射事件.比如,一个TCP服务器,每当有客户端请求连接就会发射"connect"事件,又比如,每当读取一整块数据,文件系统就会发射一个"data"事件.这些对象在Node里被称为事件发射器(event emitter).事件发射器允许程序员订阅他们感兴趣的事件,并将回调函数绑定到相关的事件上,这样每当事件发射器发射事件时回调函数就会被调用.发布/订阅模式非常类似传统的GUI模式,比如按钮被点击时程序就会收到相应的通知.使用这种模式,服务端程

详细分析Android中onTouch事件传递机制

onTach介绍 ontach是Android系统中整个事件机制的基础.Android中的其他事件,如onClick.onLongClick等都是以onTach为基础的. onTach包括从手指按下到离开手机屏幕的整个过程,在微观形式上,具体表现为action_down.action_move和action_up等过程. onTach两种主要定义形式如下: 1.在自定义控件中,常见的有重写onTouchEvent(MotionEvent ev)方法.如在开发中经常可以看到重写的onTouchEv

JQ中click事件在ie上无效,火狐,谷歌,360都正常

问题描述 JQ中click事件在ie上无效,火狐,谷歌,360都正常 $('input:radio').bind("click", function () { // alert("11"); var cs = $(this).attr('class').toString(); var a = $(this).attr('id').toString(); var c = cs.substring(0, 4); // alert("22"); if

理解&#106avascript中的事件

在很多语言的学习中,"事件"都是一个比较难理解,但是又是一个很重要的概念.javascript中的事件处理也是一样,正因为有了事件处理,才会出现Ajax拖动的效果.本文就讨论一下JavaScript中的事件处理,读过之后,您就会知道,很多Ajax框架实现拖动效果的原理了.一. IE Event对象(一)IE Event对象的主要属性和方法 在IE中有一个专门负责事件处理的对象Event,这个对象负责对事件的处理,含有很多的属性和方法,通过这些方法和属性的调用,就能完成很多的事件处理.

理解JavaScript中的事件

javascript 在很多语言的学习中,"事件"都是一个比较难理解,但是又是一个很重要的概念.JavaScript中的事件处理也是一样,正因为有了事件处理,才会出现Ajax拖动的效果.本文就讨论一下JavaScript中的事件处理,读过之后,您就会知道,很多Ajax框架实现拖动效果的原理了.一. IE Event对象(一)IE Event对象的主要属性和方法 在IE中有一个专门负责事件处理的对象Event,这个对象负责对事件的处理,含有很多的属性和方法,通过这些方法和属性的调用,就能