c# – 当调用派生类中的方法时,是否有可能通知基类?
发布时间:2020-12-15 23:28:06 所属栏目:百科 来源:网络整理
导读:考虑以下小设计: public class Parent{ public event EventHandler ParentWentOut; public virtual void GoToWork() { ParentWentOut(); }}public class Mother : Parent{ public override void GoToWork() { // Do some stuff here base.GoToWork(); // -
考虑以下小设计:
public class Parent { public event EventHandler ParentWentOut; public virtual void GoToWork() { ParentWentOut(); } } public class Mother : Parent { public override void GoToWork() { // Do some stuff here base.GoToWork(); // <- I don't want to write this in any derived class. // I want base class's method to be automatically called. } } 有没有任何机制可以隐式地自动调用Parent.GoToWork方法,只要这个方法在后代的重写版本(这里是Mother类)中完成? 如果有其他语言而不是C#能够这样做,我将非常感谢知道. 解决方法
你可以尝试实现这样的东西
public class Parent { public event EventHandler ParentWentOut; public void GoToWork() { BeforeParentWentOut(); ParentWentOut(); AfterParentWentOut(); } protected virtual void BeforeParentWentOut() { // Dont do anything,you can even make it abstract if it suits you } protected virtual void AfterParentWentOut() { // Dont do anything,you can even make it abstract if it suits you } } public class Mother : Parent { protected override void BeforeParentWentOut() { // Do some stuff here } } 您也可以在Mother类上订阅自己的活动并对此作出反应. 编辑:更新为受保护,添加之前/之后的方法来处理何时向父实现添加代码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- React 组件生命周期 简单演示
- ruby – 在每行上针对多个(15)正则表达式解析文本正文的最佳
- c#.net+SQL2005 实现简单搜索
- 在Ruby中声明“私有”/“受保护”时实际发生了什么?
- 为什么rubys public和private关键字/方法返回Object?
- 多正则表达式匹配(Multiple Regular Expression Matching)
- ios – 无法将应用程序上传到iTunes Connect – iTunes Sto
- c# – 从ASP.NET与SQL Mgmt Admin调用时,存储过程较慢
- FlexPaper+SWFTools 实现仿百度文库及一些小问题
- XML解析