我掙扎建立,如果條件爲真拋出異常的表現,如果它是假的,它應該返回一個值,但我總是得到ArgumentException
:如何創建一個表達式,它引發異常或返回基於條件的值?
var expr =
Expression.Condition(
Expression.Equal(Expression.Constant(0), Expression.Constant(0)),
Expression.Throw(Expression.Constant(new DivideByZeroException())),
Expression.Constant(1));
var lambda = Expression.Lambda<Func<int>>(expr);
var result = lambda.Compile()();
如果我把Expression.Empty()
爲然後運行Condition
的第三個參數,但如果條件爲假,我不會得到期望的結果。
0總是等於0時,你總是會拋出一個異常 –
@YuvalItzchakov我知道;-)這只是爲了簡單。真實的表達具有真正的價值。 – t3chb0t
如果我們不知道你的真實表情,我們該如何幫忙? –