public static Result operator +(Result left, Result right) { dynamic leftV = left; dynamic rightV = right; return(CalculationTree.getValue((leftV.Value + rightV.Value).ToString())); }
public static Result operator ^(Result left, Result right) { dynamic leftV = left; dynamic rightV = right; dynamic r = Math.Pow((double)leftV.Value, (double)rightV.Value); return(CalculationTree.getValue(r.ToString())); }
public static Result operator |(Result left, Result right) { if (left is BooleanResult l && right is BooleanResult r) { return(new BooleanResult(l.Value || r.Value)); } dynamic leftV = left; dynamic rightV = right; return(CalculationTree.getValue((leftV.Value | rightV.Value).ToString())); }