public static double Multiply()
        {
            double           operand1         = ReciveOperands("Operand1");
            double           operand2         = ReciveOperands("Operand2");
            OperatorsFactory multiplyFactory  = new MultiplyFactory();
            Operator         multiplyOperator = multiplyFactory.Create();

            return(multiplyOperator.Calculate(operand1, operand2));
        }
示例#2
0
        public string Multiply(double numberA, double numberB)
        {
            IOperatorFactory multiply         = new MultiplyFactory();
            Operator         multiplyOperator = multiply.CreareOperator();

            multiplyOperator.NumberA = numberA;
            multiplyOperator.NumberB = numberB;
            return(multiplyOperator.GetResult().ToString());
        }
示例#3
0
        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());
        }