2

私は新しいAction/Func / Variance / CoVarianceのものに少し曖昧です。これは、おそらく私が必要としているものです。

私が欲しいのは、デリゲートをパラメーターとしてメソッドに渡すことができるようにすることです。このメソッドは、文字列を受け取り、ブール値を返します。問題は、ライブラリを共有しない別のライブラリで使用され、両方が3分の1によって呼び出されるため、型付きデリゲートまたはインターフェイスを使用できないことです。

したがって、一般的には、デリゲートが入力タイプと戻りタイプによって推測されるようにします。

したがって、次のようになります。

delegate bool IncludeItemDelegate(string item);

ClassA.FetchItems(int someParameter,includeItemDelegate);
ClassB.FetchItems(int someParameter,string someOtherParam,includeItemDelegate);

AとBがライブラリを共有していない場合、それは可能ですか?

4

3 に答える 3

7

どうFunc<string,bool>ですか?

于 2010-10-26T11:27:12.653 に答える
6

述語は組み込みであり、意図を示します。

ClassA.FetchItems(int someParameter, Predicate<string> filter);
于 2010-10-26T11:32:01.347 に答える
0

述語をラムダとして渡すことも可能です

class A
{
    static public IEnumerable<string> FetchItems(int max, Predicate<string> filter)
    {
        var l = new List<string>() {"test", "fest", "pest", "häst"};
        return l.FindAll(filter).Take(max);
    }
}

このような

var res = A.FetchItems(2, s => s.EndsWith("est"));
于 2010-10-26T11:48:56.013 に答える