0

作为一组更大的表达式的一部分,我们有我们的除法案例。这很简单

protected override Expression BuildDivideExpression(Expression left, Expression right)
{           
    return Expression.Divide(left, right);
}

我想更改它,以便如果 left 为 0,它返回 0,并且如果 left != 0 .. 是这样的:

protected override Expression BuildDivideExpression(Expression left, Expression right)
{
    return Expression.Condition(left != 0, Expression.Constant(0), Expression.Divide(left, right))
}

但我无法弄清楚当前显示为“left!= 0”的条件位

?

4

1 回答 1

1

我认为你的意思是如果权利等于零,你希望结果为零。所以你想像这样使用Expression.Equal

protected override Expression BuildDivideExpression(Expression left, Expression right)
{
    return Expression.Condition(Expression.Equal(right, Expression.Constant(0)),
                                Expression.Constant(0), 
                                Expression.Divide(left, right))
}
于 2011-09-30T15:18:39.440 回答