【发布时间】:2017-08-15 01:39:23
【问题描述】:
假设我有一个“Timer”类,它每 1 秒调用一次方法,它调用“Gear”类中的另一个方法:
public class Timer
{
public void OnTick()
{
Gear.Update();
}
}
public class Gear
{
public static void Update() { }
}
这有点工作,但它只在基类上调用。 应该在“Gear”的所有子项中调用“Update”方法: 例如:
public class AnotherClass : Gear
{
public override void Update() { // do stuff }
}
public class YetAnotherClass : Gear
{
public override void Update() { // do stuff }
}
public class AndAnotherClass : Gear
{
public override void Update() { // do stuff }
}
我该怎么做?
【问题讨论】:
-
所以你想调用Gear所有子类的所有实例?听起来您想在某种容器中运行代码。
-
在集合中处理对象引用,然后遍历它们并调用 Update()
-
你的代码没有意义。你调用
Gear.Update()就像一个静态方法,但是将它定义为一个实例方法。 -
这是我的问题。我必须在没有实例的情况下调用它,我不知道如何:/
-
不知道更大的图景是什么,但肯定有更好的方法。试着退后一步,从更高的层次问一个关于你真正想要什么的问题,因为对上述问题的任何回答都会导致麻烦。
标签: c# inheritance methods multiple-inheritance