c# - 要求子类在覆盖中调用 base.Foo()
问题描述
我正在开发一个使用大量继承的 Unity 项目。我有一个抽象基类,我希望它的子类总是调用它的方法(例如Awake
)。
我没有太多使用属性 - 有没有办法向我的 ABC 的 Awake 方法添加一个属性,如果它们在Awake()
没有调用base.Awake()
其实现的情况下覆盖,则会导致子类记录错误?
谢谢!
解决方案
你可以这样:
public class A
{
public void Awake()
{
Console.WriteLine("Everybody does X on awake");
AwakeExtra();
}
public virtual void AwakeExtra() => Console.WriteLine("'A' also does A on awake");
}
public class B : A
{
public override void AwakeExtra() => Console.WriteLine("'B' also does B on awake");
}
推荐阅读
- java - 微服务可以部署为jar文件吗?
- .net-core - 新机器上的 aspdotnet 核心项目构建失败
- javascript - Facebook 的 oEmbed 端点语法错误为无效或意外令牌
- python - 将骰子的两个结果加在一起python
- loops - 我想使用 at 命令在组合框中的所有联系人列表中发送短信
- linux - 更新 GNU/Linux 内核以每个数据包发送 n 个 TCP 数据包
- opengl - 在 GLSL 中读取当前片段颜色
- python - 我如何向arm发送命令以控制摄像机
- python - 在 Python 中动态设置实例属性
- javascript - Chrome 扩展程序仅适用于特定网站