C#中的虚拟方法或事件
我正在编写一个小C#库来简化实现一点物理模拟/实验.
主要组件是一个SimulationForm,它在内部运行一个定时器循环,并隐藏用户的样板代码.实验本身将通过三种方法进行定义: > Init()(初始化所有内容) 我只是想知道让用户实现这些功能的最佳选择是什么? 1)虚拟方法被继承的形式覆盖 protected virtual void Init() {} ... 要么 2)事件 public event EventHandler<MoveSimulationEventArgs> Move = ... ... 编辑:注意,方法不应该是抽象的.事实上,还有更多的,没有一个是不可执行的.离开它们通常很方便,因为许多模拟不需要它们. 这是一个“正常形式”的酷事,就是你可以写 partial class frmMyExperiment : SimulationForm { } 您完全可以与设计师和所有继承的控件和设置/属性进行交互.我不想通过完全不同的方法来失去这个功能. 解决方法
在这种情况下,我更喜欢使用虚拟方法.
另外,如果要运行这些方法,你可以使你的类为abstract class.这是可用性方面最好的,因为它会导致编译器强制使用.如果用户尝试使用您的类/ Form而不实现方法,编译器将抱怨. 事件在这里会有点不合适,因为这真的不是你想要多于单一实现(事件允许多个订阅者)的东西,而在概念上它更多是对象的功能,而不是由物体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |