2011-01-19 13 views
1

も私は辞書にフレッドを追加するにはどうすればよいのFuncと一覧<string>

private string fred(List<string> Parms) 
    { 

     return "Test"; 
    } 

がありますか? 私は

 test1.Add("Test",fred); 

を試してみましたが、私はすべてがOKである文字列のリストを交換する場合、私は、エラーを取得します。

答えて

4

あなたは間違った方法で議論しています。 Func<X,Y>Xで、Yを返します。あなたの辞書には次のようになります。

Dictionary<string, Func<List<string>,string>> 
+1

である必要があり、私は愚かな古い芝よ、ありがとうございました。 – Podge

+0

問題ありません:)これは一般化しています - 'Func'の場合、最後のパラメータは常に戻り値の型です。 'Func 'は 'X'と' Y'をとり、 'Z'を返します。 – porges

+0

私はインテリセンスをもっと見るべきです。私はそれが関数定義と同じ方法であると仮定しました。戻り値の型が最初です。 – Podge

2
Dictionary<string, Func<string, List<string>>> test1 = new Dictionary<string, Func<string, List<string>>>(); 

Dictionary<string, Func<List<string>, string>>> test1 = new Dictionary<string, Func<List<string>, string>>();