我正在编写一个小C#库来简化实现一点物理模拟/实验.
主要组件是一个SimulationForm,它在内部运行一个定时器循环,并隐藏用户的样板代码.实验本身将通过三种方法进行定义:
> Init()(初始化所有内容)
> Render(Graphics g)(渲染当前模拟状态)
> Move(double dt)(移动实验为dt秒)
1)虚拟方法被继承的形式覆盖
protected virtual void Init() {} ...
要么
2)事件
public event EventHandler<MoveSimulationEventArgs> Move = ... ...
编辑:注意,方法不应该是抽象的.事实上,还有更多的,没有一个是不可执行的.离开它们通常很方便,因为许多模拟不需要它们.
这是一个“正常形式”的酷事,就是你可以写
partial class frmMyExperiment : SimulationForm { }