4

このコードのデリゲートについて質問があります。デリゲートに 3 つのメソッドを追加します。文字列が返されます。ラインで

string delOut = del("ビール");

私の貴重な delOut デリゲート担当者にこの「長さ: 4」

デリゲートのメソッドが返すすべての文字列を収集するにはどうすればよいですか?

public class NaForum
{
    public delegate string MyDelegate(string s);

    public void TestDel()
    {
        MyDelegate del = s => s.ToLower();
        del += s => s.ToUpper();
        del += s => string.Format("Length : {0}", s.Length);

        string delOut = del("Beer");
        Console.WriteLine(delOut);
    }
}

回答ありがとうございます。

4

2 に答える 2

9

使用する必要がありますDelegate.GetInvocationList

var results = new List<string>();

foreach (MyDelegate f in del.GetInvocationList()) {
    results.Add(f("Beer"));
}

現在、resultsすべての戻り値を保持しています。

于 2013-06-18T13:18:57.467 に答える