ここに私のセットアップがあり、コメントは私がやりたいことを示しています:
class Process
{
void SomeMethod()
{
// Here I want to call Parent.MethodToCall()
}
}
class Controller
{
Process c = new Process();
void MethodToCall()
{
}
}
これで、クラスController.MethodToCall()
のライフサイクル全体で何度も呼び出されます。Process
呼び出す必要があるのは親メソッドだけなのでevent
、ハンドラーを削除することはなく、呼び出しが 1 回しかないため、を使用すると少し無駄になると思います。
したがって、これを回避するために現在使用している方法は次のとおりです。
class Process
{
public Func<void> Method { get; set; }
void SomeMethod()
{
Method();
}
}
class Controller
{
Process c = new Process() { Method = MethodToCall }
void MethodToCall()
{
}
}
まず、構文が完璧ではない可能性があるため、すぐにメモ帳で調べました。
私の質問: 私がやっていることは非常に面倒に見えるので、私が望むものを達成するための最良の方法は何ですか?...または、デザインの観点からこれについて完全に間違った方法で考えていますか?
基本的に、私がやりたいことは、Controller クラスのメソッドを public にせずに呼び出すことです。なぜなら、それが public である場合、単に Controller をパラメータとして Process に渡すことができるからです。