public string Divide(double numberA, double numberB) { string result = string.Empty; try { IOperatorFactory divide = new DivideFactory(); Operator divideOperator = divide.CreareOperator(); divideOperator.NumberA = numberA; divideOperator.NumberB = numberB; result = divideOperator.GetResult().ToString(); } catch (Exception ex) { _Ilogger.Log(LogLevel.Error, ex); } return(result); }
public string GetResult() { string[] str = expression.Split(new char[4] { '+', '-', '/', '*' }); string result = null; if (str.Length == 1) { return(Convert.ToDouble(str[0]).ToString()); } else { //第一个数带符号问题 if (str.Length == 3) { str[0] = "-" + str[1]; str[1] = str[2]; } char c = expression.ToCharArray()[expression.IndexOf(str[0]) + str[0].Length]; //string pattern = @"^-?\d+$";//判断整数? //Regex regex = new Regex(pattern); switch (c) { case '+': { AdditionFactory additionFactory = new AdditionFactory(); Operation operateAddition = additionFactory.CreateAddition(str[0], str[1]); result = operateAddition.GetResult(); break; } case '-': { SubtractionFactory subtractionFactory = new SubtractionFactory(); Operation operateSubtraction = subtractionFactory.CreateSubtraction(str[0], str[1]); result = operateSubtraction.GetResult(); break; } case '*': { MultiplyFactory additionFactory = new MultiplyFactory(); Operation operateMultiply = additionFactory.CreateMultiply(str[0], str[1]); result = operateMultiply.GetResult(); break; } case '/': { DivideFactory additionFactory = new DivideFactory(); Operation operateDivide = additionFactory.CreateDivide(str[0], str[1]); result = operateDivide.GetResult(); break; } default: result = "error"; break; } } return(result.ToString()); }