如何使用相似的方法组织多个静态对象?

时间:2019-01-28 02:30:42

标签: c# inheritance override virtual static-methods

我正在用C#制作基于图块的火车游戏,并且我决定将轨道类型编写为静态类(在我看来,每个“直线”轨道应该表现出相同的行为,而每个“ LargeTurnLeft”,“ SmallTurnRight”等)

火车通过将变量“ w”传递到当前乘坐的任何类型的轨道中来跟踪该轨道。每种类型的Track都有一个名为trackLogic的函数,该函数根据轨道的形状返回不同的(X,Y)坐标。 “ trackLogic”始终可用于每种类型的轨道,但函数因类型而异(有时会返回一条直线,有时会返回一条曲线,也许是一个回路)。

在我看来,最好的组织方式是拥有一个静态的虚拟“轨道”,其功能被每种轨道的特定方法所覆盖(“ LargeTurnRight.trackLogic”等)。这将使新的曲目类型变得更容易。但是,正如我确定大家都已经知道的那样,C#中不存在静态虚拟类。

由于此游戏最终将涉及成千上万的曲目,因此我不希望每个实例都包含。但是,要使多个轨道类型具有统一的功能结构,它们也不能是静态的。

我应该废弃单个类,将每种类型的开关盒丢入原始“ Track”类,并用每个新块更新功能,还是有一种更优雅的方式来组织具有相同方法名称的多个功能?

0 个答案:

没有答案
相关问题