2 つの異なる無関係なアセンブリがデリゲート型やインターフェイス型を使用したい場合 (例:
インターフェイス IFoo {void Foo(); } デリゲート void ActionByRef<T>(ref T param)_;
IFoo
それぞれ独自の目的のために、しかし、それらの両方を使用する 3 番目のアセンブリが 2つのアセンブリ間でオブジェクトを渡したい可能性がありますActionByRef<T>
。他?.net はデリゲート型に単純な構造的等価性を使用しないことを知っています (つまり、両方の型が同じシグネチャを持つ関数を表している場合でも、 a を期待するルーチンは aFunc<int,bool>
を受け入れませんPredicate<int>
)、正確なルールは何ですか? アセンブリを .net 2.0 および 4.0 と互換性があるように設計し、3 つのパラメーターを持つメソッドのデリゲートを受け入れるようにしたい場合、定義する方法はありますか?Action<T1,T2,T3>
アセンブリが.net 2.0プログラムにリンクされたときに組み込みのものを使用するようにしますが、.net 4.0とリンクされたときに同じ名前のフレームワーク定義のデリゲートのパラメーターを受け入れますか?