public static IResultOutput SimpleCalculator(double firstArgument, double secondArgument, char mathOperator) { IResultOutput result = new DefaultResultOutput(); new SimpleCalculator <IResultOutput>(firstArgument, secondArgument, mathOperator, result).Calculation(); return(result); }
public static IResultOutput MainCalculator(string expression) { IResultOutput result = new DefaultResultOutput(); new MainCalculator <IResultOutput>(expression, result).Calculation(); return(result); }
static Calculation binaryApply(opType op, Calculation a, Calculation b) { //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ IResultOutput resultOutput = new DefaultResultOutput(); //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ switch (op) { case opType.sum: return(new Calculation(a, b, new SumOperation(resultOutput).Execute)); case opType.sub: return(new Calculation(a, b, new SubtractionOperation(resultOutput).Execute)); case opType.div: return(new Calculation(a, b, new DivisionOperation(resultOutput).Execute)); case opType.mul: return(new Calculation(a, b, new MultiplicationOperation(resultOutput).Execute)); default: throw new ParseException(); } }