さまざまなオブジェクトの1つでメソッドを実行したいのですが、メソッド呼び出しの前後に、さまざまなメンテナンスタスクを実行するための関数を実行する必要があります。前後に実行する関数は常に同じです。メソッドの戻り値のタイプとパラメーターは、ほとんど何でもかまいません。
現在、私が使用している可能性のあるすべてのメソッドシグネチャのデリゲートを定義することでこれを行っていますが、これを行うのは非常に厄介です。これは一例です:
protected delegate void DelVoidString(string string1);
protected void Execute(DelVoidString p, string string1)
{
PreInvoke();
p.Invoke(string1);
PostInvoke();
}
署名を除いて、それらすべてのコードは同一です。だから私の質問は:これを行うためのより良い方法はありますか?デリゲートを必要とするメソッド呼び出しの前後にPreInvoke()とPostInvoke()を実行する手段がある限り、デリゲートを使用することに執着していません。そのコードを毎回書き出すことを忘れないでください。
私はラムダ式について漠然とした知識しか持っていません...彼らはここで私をよりよく助けることができますか?それとも私は他の途方もなく明白な何かを見逃していますか?ありがとう!