適度に複雑な再試行および試行/キャッチ ロジック内で「ファイルの書き込み」操作を行うコードのチャンクがあります。これは正常に機能しています。おおよそ次のようになります。
while (...) {
try {
FilePut(source, destination)
}
catch () {
//Check exception type, possibly re-throw, possibly return, possibly increment
//counters being checked by while loop
}
}
このロジックの詳細は問題ではありません。しかし、この同じ種類のロジック内で実行する必要がある他の操作がいくつかあることに気付きました。このロジックをコピーしてアプリケーションに貼り付けることは避けたいと考えています。関数に移動して、その関数を再利用したいと思います。その関数は、呼び出される操作への何らかの参照を取得する必要があり、try ロジックがその操作 (ファイルの書き込み、ファイルの取得など) を実行します。
これはデリゲートにとって最適な場所のように思えますが、問題は、これらの操作のそれぞれに異なる署名があるため、上記のロジックを記述して「任意の」操作を呼び出す方法がわからないことです。
C#でこれを行う良い方法はありますか?