向字典中添加函数时出错(c#)

本文关键字:出错 函数 字典 添加 | 更新日期: 2023-09-27 18:04:44

我试图在字典中添加功能。

// public string GetDensity_EdgeZone_LeftHand()
Dictionary<string, Func<string>> FunctionsGetMeasureData;
FunctionsGetMeasureData = new Dictionary<string, Func<string>>();
FunctionsGetMeasureData.Add(tempArea, _MeasureData.GetDensity_EdgeZone_LeftHand);

但是,在这个_MeasureData中我也有public Dictionary<eMeasureProperty, cClassifyData> MeasuresData;cClassifyData包含函数public string GetAverage(string classify)

所以,当我尝试像这样添加它时:

FunctionsGetMeasureData.Add(tempArea, _MeasuresData.MeasuresData[NameKey].GetAverage(somename);

一切都完蛋了。问题在哪里?我还尝试使用其他类型的字典Dictionary<string, Func<string, string>> FunctionsGetComplexMeasureData;

向字典中添加函数时出错(c#)

您不是在尝试添加一个函数,而是在添加该函数的结果:

FunctionsGetMeasureData.Add(tempArea, _MeasuresData.MeasuresData[NameKey].GetAverage(somename));

如果你想添加这个函数,你不应该调用它:

FunctionsGetMeasureData.Add(tempArea, _MeasuresData.MeasuresData[NameKey].GetAverage);

除此之外,如果你的字典是Dictionary<string, Func<string>>,你不能添加_MeasuresData.MeasuresData[NameKey].GetAverage,因为它是Func<string, string>