public override IResultValue Evaluate() { IResultValue condition = Condition.Evaluate(); if (condition.Type != MathType.Boolean) { throw new EvaluationException(this, "Condition part of conditional operator must be boolean."); } // See what I mean here? return(condition.ToBoolean() ? OnTrue.Evaluate() : OnFalse.Evaluate()); }