我有一个具有bool属性的基类,如下所示:
public abstract class MyBaseClass
{
public bool InProgress { get; protected set; }
}
我正在从中继承另一个类,并尝试将InProgress作为字典的委托(delegate)添加。但这使我出错。这是我的派生类的样子:
public abstract class MyClass
{
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("InProgress", InProgress => base.InProgress = InProgress);
}
这是我得到的错误:
我在这里做错了什么?
最佳答案
最好是将字典强类型化,但是如果首先将lambda分配给特定的lambda(委托(delegate)),它将工作(因为编译器随后会知道委托(delegate)格式):
Action<bool> inp = InProgress => base.InProgress = InProgress;
dict.Add("InProgress", inp);
或直接转换,效果相同
dict.Add("InProgress", (Action<bool>)(InProgress => base.InProgress = InProgress));
当然,可以讨论将字典格式作为对象,因为您必须知道委托(delegate)格式才能使用它。