有没有办法在初始工厂方法之外设置.NET(4.0及更高版本)中的ConditionalExpression的IfTrue属性?
我的目标是拥有一个通用的SafeAction类,以便在执行后续操作(IfTrue)之前检查谓词,但是可以单独设置替代操作(IfFalse)。
我想我可以使用自己的工厂方法以我需要的方式生成ConditionalExpression对象。我只是认为这些属性(IfTrue,IfFalse,Test)只是委托,可以在ConditionalExpression对象的整个生命周期中重置。
答案 0 :(得分:0)
不,那是不可能的。你必须为此编写自己的方法。
您可以为此编写流畅的扩展方法:
public static ConditionalExpression WithTrue(this ConditionalExpression item,
Expression ifTrue)
{
return Expression.Condition(item.Test, ifTrue, item.IfFalse, item.Type);
}