拡張メソッドを使用したイベントの発生に関する投稿をいくつか見つけましたが、私の質問は少し異なります。
私はこのようなインターフェースを持っています:
public interface IStateMachine
{
void SetState(IState NewState);
IState GetState();
}
このインターフェイスを使用して、次のような拡張メソッドを作成できます。
public static void ChangeState(this IStateMachine StateMachine, IState NewState)
{
StateMachine.GetState().Exit();
StateMachine.SetState(NewState);
StateMachine.GetState().Enter();
}
私が本当に望んでいるのは、起動する必要があるイベントがあることですstatechange-event
。
ただし、をインターフェイスStatechangeEvent
の一部にしたくありませんが、それが唯一の方法のようです。IStateMachine
を実装するクラスがいくつかあるためIStateMachine
、毎回同じコードをやり直す必要があります。