我有一个具有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)格式才能使用它。

07-28 01:04