c# - 从超类调用重载构造函数后要调用的强制方法
问题描述
我正在做一个 unity3d 项目,我有一个抽象对象,我将从其他对象调用。我希望我的所有子类在完成构建后调用某个虚拟方法。本质上,将调用基础构造函数,然后是重载构造函数,最后是我的方法,但我希望从基础对象定义这种行为。
解决方案
您可以强制您的子类实现一个名为 Initialize() 的抽象方法,然后选择基类中的调用顺序:
public abstract class MyBaseClass
{
public abstract void Initialize();
public MyBaseClass()
{
// Code of the constructor of the base class
// Calling the subclass
Initialize();
// Finally call the special method
MySpecialMethod();
}
private void MySpecialMethod()
{
// Some code here
}
}
public class MySubclass : MyBaseClass
{
public override void Initialize()
{
// Some code here
}
}
推荐阅读
- excel - 从更大的阵列中删除一个阵列?
- python - 如何使用 Pyinspect 获取 Win32 应用程序中的所有元素 ID?
- node.js - 为 Node.js 客户端应用程序持久化 Firebase 用户
- laravel - 在 Laravel 5.8 中的 Docker 内部迁移期间连接被拒绝
- javascript - 使用 dropzone.js,我想发送自定义 formData
- android - 有没有办法在 android 上使用开放的街道地图生成地理围栏?
- visual-studio-code - 创建了我自己的viewsContainer - 我可以包含来自其他viewsContainers 的视图吗?
- node.js - 在控制台上获得响应而对 agent.add() 没有响应
- javascript - 一个简单的for循环出现意外的令牌错误?
- excel - Excel:SMALL()、IF() 和 ROW() 使用多个条件查找值的行号 - AND() 不起作用