我目前正在编写一个C#库以简化实现小物理模拟/实验。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 {
}
,你就完全能够与设计师和所有继承的控制和设置/特性交互。我不想通过完全不同的方法失去这个功能。
对所需方法的“抽象”+1。 – 2009-12-16 20:29:58
IMO,摘要FTW。 – Yoopergeek 2009-12-16 20:30:32
摘要不适合,但“功能但notifcation”是一个好点+1 – Dario 2009-12-16 20:44:30