1

有没有办法在初始工厂方法之外设置 .NET(4.0 及更高版本)中 ConditionalExpression 的 IfTrue 属性?

我的目标是拥有一个通用的 SafeAction 类,以便在执行后续操作 (IfTrue) 之前检查谓词,但独立设置替代操作 (IfFalse)。

我想我可以有自己的工厂方法以我需要的方式生成 ConditionalExpression 对象。我只是在想这些属性(IfTrue、IfFalse、Test)只是委托,可以在 ConditionalExpression 对象的整个生命周期中重置。

4

1 回答 1

0

不,那是不可能的。您必须为此编写自己的方法。

您可以为此编写流畅的扩展方法:

public static ConditionalExpression WithTrue(this ConditionalExpression item,
                                             Expression ifTrue)
{
    return Expression.Condition(item.Test, ifTrue, item.IfFalse, item.Type);
}
于 2013-02-07T14:03:39.470 回答