汎用Func <>およびアクション<>以降のバージョンの.NETの代理人は非常に魅力的です。これらは.NET 2.0をターゲットとするコードで簡単に再現できることが多くの場所で実証されています。 hereなどです。ライブラリ内のC#Func <>デリゲート
ただし、.NET 2.0をターゲットとするライブラリの観点からは、上位バージョンの.NETに基づいて構築されたアプリケーションによって消費される可能性があります。ライブラリ内のこの「互換レイヤー」を実装することは、(プライベートインターフェイスとパブリックインターフェイスの両方で)競合のレシピに過ぎないのですか?あるいは、このアプリケーションを、使用するアプリケーションがビルドするターゲットフレームワークとは独立させる方法がありますか?
これは初心者ではない場合は、 のいずれかを使用する方が良いでしょうか?A)名前が異なるパラメータ化されたデリゲートの同じセットを定義しますか?または.. B)厳密に.NET 2.0の規約に従い、必要なときに新しいデリゲートタイプを定義しますか?
.NET 2.0をターゲットとするライブラリを構築する場合は、可能であれば、既存のデリゲートをフレームワークで使用してみてください。それ以外の場合は、独自の名前をつけてください。いかなる場合でも名前を付けないでください。または、.NET 3.0以上のデリゲートをミラーリングするための汎用汎用デリゲートを作成してください。それは混乱につながるだけです。互換性のあるデリゲートが相互に変換可能であるため、互換性レイヤーは不要です。 –