在字典中存储func时,参数类型不可分配

时间:2009-03-26 19:25:54

标签: c#

我有一个func,它接受一个T类参数并返回一个值。

我想将它存储在字典中,如下:

Dictionary<CustomerMilestones, Func<string, string>> coll = new Dictionary<CustomerMilestones, Func<string, string>>();

string Indicator = coll[CustomerMilestones.Ordered100Products].Invoke(customerId.ToString());

coll.Add(CustomerMilestones.Ordered100Products, Execute(Indicator);

Execute是一个接受字符串但也返回字符串的方法。在最后一行,错误如下:

参数类型字符串不能分配给参数类型Func。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

您不应该调用执行 - 您只需要将其作为方法组提供:

coll.Add(CustomerMilestones.Ordered100Products, Execute);

答案 1 :(得分:2)

如果我理解正确,你应该传入Execute方法,而不是执行调用的结果。

coll.Add(CustomerMilestones.Ordered100Products,Execute);