当前位置:编程学习 > C#/ASP.NET >>

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

--------------------编程问答-------------------- 现在的不完整吗... --------------------编程问答-------------------- 只要该eventhandler是protected或public的,就可以用,你可以用改eventhandler绑定a,b,c任何一个中的方法 --------------------编程问答-------------------- http://www.cnblogs.com/anjou/archive/2007/06/19/788987.html --------------------编程问答-------------------- 直接继承就可以了。子类不需要额外的代码。 --------------------编程问答-------------------- 4楼:不知道直接继承如何实现? --------------------编程问答--------------------
引用楼主 gaishe 的回复:
问题如下:
现在有一个class A,
该类中有一个事件 message;

新建一个类class B,
我希望在class B中能够完整的继承message事件;
(代码如何处理??)

而后class C :class B,我可以使用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 的回复:
问题如下:
现在有一个class A,
该类中有一个事件 message;

新建一个类class B,
我希望在class B中能够完整的继承message事件;
(代码如何处理??)

而后class C :class B,我可以使用message事件。

不知道我的问题表述清楚没有,希望得到各位大侠的回答,谢谢啊

我个人感觉,在C……


请问怎么c中怎么能够直接使用A中的事件呢? --------------------编程问答-------------------- --------------------编程问答--------------------
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Clien……

我的问题是不是没问清楚啊,我是想在C类中使用B类在A类中继承的事件。
就是说A类中原来有一个事件,我需要在B类中继承(或者是说我需要在B类中有一个同A类中有同样功能的事件),而后我可以使用B类中的事件,而不直接使用A类中的事件。 --------------------编程问答-------------------- 貌似不行吧,编译出错的说,话说在子类中可以为事件绑定方法不就好了,想触发,就调用基类的方法来触发 --------------------编程问答--------------------
引用 10 楼 gaishe 的回复:
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramewor……

你到底想说有个事件还是有个事件处理函数? --------------------编程问答-------------------- 字段,常量,事件都是类的数据。
个人感觉 能不能访问 关注访问修饰符就可以了。
--------------------编程问答--------------------
引用 2 楼 dazhabai 的回复:
只要该eventhandler是protected或public的,就可以用,你可以用改eventhandler绑定a,b,c任何一个中的方法

对呀 --------------------编程问答--------------------
引用 12 楼 caozhy 的回复:
引用 10 楼 gaishe 的回复:
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\F……


谢谢你啊!
我要说的是事件,不是函数:
A类中原来有一个事件,我需要在B类中实现一个同A类中有同样功能的事件。 --------------------编程问答--------------------
引用 15 楼 gaishe 的回复:
引用 12 楼 caozhy 的回复:
引用 10 楼 gaishe 的回复:
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v4.0.30319
// C:\Program Files\Reference A……

结果把A类的隐藏? --------------------编程问答-------------------- ???????

直接继承就ok了

B里一行代码都不要处理

lz啊,你想想看如果我继承了了 微软提供的Button写了一个myButton,你认为这个myButton他会没有Click事件??? --------------------编程问答--------------------
引用 16 楼 caozhy 的回复:
引用 15 楼 gaishe 的回复:
引用 12 楼 caozhy 的回复:
引用 10 楼 gaishe 的回复:
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v4.0.30319
// C:\Prog……


不知道您说的隐藏是什么意思?

就是我想直接使用B中的事件,而不使用A中的事件。 --------------------编程问答-------------------- 我建议你用NVI(Non-Virtual Interface)模式来设计。

也就是你看到的 OnXXX() 的虚方法,然后让子类重写。 --------------------编程问答--------------------
引用 18 楼 gaishe 的回复:
引用 16 楼 caozhy 的回复:
引用 15 楼 gaishe 的回复:
引用 12 楼 caozhy 的回复:
引用 10 楼 gaishe 的回复:
引用 9 楼 caozhy 的回复:
引用 5 楼 gaishe 的回复:
4楼:不知道直接继承如何实现?



C# code
#region Assembly System.Windows.Forms.dll, v……

对,就是这个意思。 --------------------编程问答--------------------
引用 19 楼 caozhy 的回复:
我建议你用NVI(Non-Virtual Interface)模式来设计。

也就是你看到的 OnXXX() 的虚方法,然后让子类重写。

好像还挺麻烦。

小生愚钝,有没有具体的例子啊? --------------------编程问答--------------------
引用 17 楼 wanghui0380 的回复:
???????

直接继承就ok了

B里一行代码都不要处理

lz啊,你想想看如果我继承了了 微软提供的Button写了一个myButton,你认为这个myButton他会没有Click事件???


如果是我又有一个myButtonButton继承于myButton呢?如何保证我的myButtonButton也有click事件呢? --------------------编程问答-------------------- 基类 里使用

  public voidXXX()
  {
    onXXX();
  }

  protected virtual onXXX()
  {
     
  }

子类使用
  protected overide onXXX()
  {
          
  }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,