これは単純化されたセットアップです。私は API を持っています (API を制御することはできません)。これは、次のような Func プロパティを公開します。
public Func<dynamic, MyClass> FuncProperty { get; set; }
通常は次のように使用します。
api.FuncProperty = s =>
{
do1();
do2();
return new MyClass(); //simplified
}
同様のコードがいたるところで使用されています (もちろん、{} の内容は異なります)。これらすべてに共通の機能を追加したいので、次のように使用できる「ラッパー」メソッドを作成したいと思います。
api.FuncProperty = MyWrapperMethod(
s =>
{
do1();
do2();
return new MyClass();
});
これらすべての呼び出しを次のように編集できることを知っています。
api.FuncProperty = s =>
{
DoMyCommonFunctionality();
//... as before
}
しかし、私の一般的な機能が次のようなものである場合:
using(var disposable = SetSomeState())
{
//the stuff which previously was in the lambda
}
次に、後者のアプローチを使用するのはちょっと見苦しいです。
そのため、たとえそれが学習目的であっても、ラッパーのメソッド シグネチャはどのように見えるべきなのでしょうか? また、どのように使用すればよいですか?