Actualmente estoy escribiendo una pequeña biblioteca de C# para simplificar la implementación de pequeñas simulaciones físicas/experimentos.Métodos o eventos virtuales en C#
El componente principal es un SimulationForm
que ejecuta un ciclo de temporizador internamente y oculta el código repetitivo del usuario. El experimento en sí se acaba de definirse a través de tres métodos:
Init()
(Inicializar todo)Render(Graphics g)
(Render estado actual de la simulación)Move(double dt)
(Mover experimento paradt
segundos)
I Sólo me pregunto cuál es la mejor opción para dejar que el usuario implemente estas funciones:
1) métodos virtuales a ser anulados por la forma heredera
protected virtual void Init() {}
...
o
2) Eventos
public event EventHandler<MoveSimulationEventArgs> Move = ...
...
Editar: Tenga en cuenta que los métodos no deben ser abstracta de todos modos. De hecho, hay aún más y ninguno de ellos tiene por implementar. A menudo es conveniente dejarlos fuera debido a que muchas simulaciones no los necesitan.
Lo bueno de esto es una "forma normal" es que se puede escribir
partial class frmMyExperiment : SimulationForm {
}
y que está perfectamente capaz de interactuar con el diseñador y todos los controles heredados y los ajustes/propiedades. No quiero perder estas características teniendo un enfoque completamente diferente.
+1 para 'abstract' en los métodos requeridos. –
IMO, Resumen FTW. – Yoopergeek
El resumen no encaja, pero el "a funcional pero una notifcación" es un buen punto +1 – Dario