namespace Model { public interface IRegister { void Register(); } public abstract class MEvent: IRegister { public void Register() { World.Instance.GetComponent().Register(this.Run); } public abstract R Run(T t); } }