OnStateChanged
方法是应该触发StateChanged
事件的方法。不是将处理此事件的方法。这就是我添加该FunctionCalledWhenStateChanges
方法的原因。
public abstract class GameStateBehaviour
{
public event EventHandler<GameStateEvents> StateChanged;
protected GameStateBehaviour()
{
StateChanged += (sender, events) => FunctionCalledWhenStateChanges();
}
public virtual void FunctionCalledWhenStateChanges()
{
// The called function
}
protected void OnStateChanged(GameStateEvents e)
{
if (StateChanged != null) StateChanged(this, e);
}
}
上面的解决方案处理您自己的事件。我认为最好实现模板方法模式而不是响应您自己的事件。但是我认为您不确定在哪里举办活动。