gpt4 book ai didi

c# - 自动触发基类函数

转载 作者:行者123 更新时间:2023-11-30 23:27:31 25 4
gpt4 key购买 nike

我想问这个问题是因为我的代码有一些安全机制。这可能看起来毫无用处,但它已经让我浪费了很多调试时间。

public class AnimalClass
{
virtual void Mod{}
virtual void UpdateSomeValues{}
}
public class CatClass : AnimalClass
{
override void Mod{}
override void UpdateSomeValues{}
}

在 C# 中有没有一种方法可以在 CatMod 时自动启动 CatUpdateSomeValues 函数> 调用函数(无需从 CatMod 函数手动调用它)?

如果可能的话,让所有的派生类都一样?

最佳答案

没有。您可以通过引入派生类可以覆盖的另一种 protected 方法来解决该问题,并在所有必要的处理完成后让 public 调用它:

public class AnimalClass
{
public void Mod()
{
// do stuff
ModImpl();
}
protected virtual ModImpl() {}
}

有了这个派生类,如果它们想做一些额外的处理,它们将实现 ModImpl(),并且您确定 //do stuff 仍然发生在 Mod 被调用。

关于c# - 自动触发基类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36523724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com