c# - 我怎样才能记住 super 调用父级?

标签 c# visual-studio inheritance visual-studio-2015 overriding

我使用的是Unity,其中有一些非常常用的方法,例如Start()Update()。每当我从另一个类继承时,我都会重写父类的方法,但我总是忘记调用base.ParentMethod();

有什么办法可以阻止自己这样做吗?它会导致很多错误,我浪费了很多时间来寻找。 Visual Studio 中是否有一个设置可以在我重写某些内容时自动调用基本方法?我可以做某种检查来看看我忘记了哪些方法进行基本调用吗?

理想情况下,我想强制 Visual Studio 在我忘记进行碱基调用时向我发出警告。我可以做这个或类似的事情吗?

最佳答案

解决此问题的常见方法是使用 Template Method pattern 。在基类中,将方法密封,并调用另一个抽象或虚拟方法:

public sealed TheMethod()
{
    // Do something that should always be done
    DoSomethingImportant()

    // Call the derived class implementation
    TheMethodCore();
}

protected abstract void TheMethodCore();

这样,派生类就不可能“忘记”调用基方法; DoSomethingImportant 将始终被调用。

关于c# - 我怎样才能记住 super 调用父级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912155/

相关文章:

c# - Selenium Webdriver 单击并发送 key 等在 Google Chrome 版本 78.0.3904.87 上不起作用

c# - post 方法是否可以在继续该方法之前向用户返回确认框?

java - 需要明确有关继承的一般概念及其在 OOP 中的实现。请参见

java - 使用继承时如何进行强封装?

c# - 无法从 'Xamarin.Forms.TextCell' 转换为 'Xamarin.Forms.View'

c# - 算术溢出检查如何在 C# 中工作

visual-studio - 等待和弦的第二个键

c++ - 当我的代码被 GCC 编译时内存泄漏

visual-studio - 列出所有 NuGet 包及其 ID、版本、许可证 URL 和项目 URL

java - OptaPlanner 解决方案继承泛型会导致错误