C# 参数类型对象不可分配给System.Func<;对象>;错误
我收到一条对我来说毫无意义的错误消息C# 参数类型对象不可分配给System.Func<;对象>;错误,c#,delegates,C#,Delegates,我收到一条对我来说毫无意义的错误消息 public class ChartInitializerBase { #region Constructors public ChartInitializerBase(Func<object> retrieveData) { var Data = retrieveData; } #endregion } 如果我收到CD,我想说 var intiialiser = new ChartIni
public class ChartInitializerBase
{
#region Constructors
public ChartInitializerBase(Func<object> retrieveData)
{
var Data = retrieveData;
}
#endregion
}
如果我收到CD,我想说
var intiialiser = new ChartInitializerBase(GetBooks(1234, 231))
var intiialiser = new ChartInitializerBase(GetCDs(1234, 231, 34))
上面的参数不同,但GetCD和GetBooks都将返回单个对象
在我的情况下,我有
var chart = new DailyConsumptionChart(
dataProvider.GetDataForDailyConsumptionChart("1", EUtilityGroup.Electricity, 321, 157, Convert.ToDateTime("01/01/2010"), Convert.ToDateTime("01/01/2010 23:30"), false));
public class ProfileDataDashboardReportsDataProvider
{
#region Methods
public object GetDataForDailyConsumptionChart(string idString, EUtilityGroup ug, int customerId, int userId, DateTime startDate, DateTime endDate, bool clockTime)
{
var mdp = new MeterDataProvider();
var result = mdp.GetProfileDataForLocationForADay(idString, ug, customerId, userId, startDate, endDate, clockTime);
return result;
}
#endregion
}
我尝试了静态和非静态类以及静态和非静态方法
不管我用哪种方法,我仍然得到参数类型的对象不可分配给System.Func error
我对这类事情还不熟悉,有人能建议我需要做些什么来解决这个问题吗
我见过这个
但是我认为这对我没有帮助
我不确定我是否将其标记在正确的区域。如果我错了,请随意更改
Paul尝试将lambda传递给构造函数,而不是方法执行的结果,如下面的代码示例所示
var initialiser = new ChartInitializerBase(() => GetBooks(1234, 231));
在这里,您只需通过一条语句传递lambda,即调用GetBooks方法
您的构造函数应该是
public ChartInitializerBase(Func<object> retrieveData)
{
var Data = retrieveData(); //here the method GetBooks will be called and data returned
}
公共图表初始化器数据库(Func retrieveData)
{
var Data=retrieveData();//这里将调用方法GetBooks并返回数据
}