int count = 1;
        int result = 0;
        List<int> al = new List<int>();
      
        private void bujia_Click(object sender, EventArgs e)
        {            al.Add(int.Parse(this.xianshi.Text));
            this.xianshi.Text = null;
            if (count % 2 == 0)
            {                foreach (int num in al)
                {
                    result += num;
                   
                }
                this.xianshi.Text = result.ToString();
               
            }            count++;
        }
       那个地方有问题啊,累加的时候出错了

解决方案 »

  1.   

    [Quote=引用楼主 hu88312976 的回复:]
    int count = 1;
            int result = 0;
            List <int> al = new List <int>();
         
            private void bujia_Click(object sender, EventArgs e)
            {
                al.Add(int.Parse(this.xianshi.Text));
            }
      

  2.   

    public class Operation 
        { 
            private double _numberA = 0; 
            private double _numberB = 0; 
            public double NumberA 
            { 
                get 
                { 
                    return _numberA; 
                } 
                set 
                { 
                    _numberA = value; 
                } 
            } 
            public double NumberB 
            { 
                get 
                { 
                    return _numberB; 
                } 
                set 
                { 
                    _numberB = value; 
                } 
            } 
            public virtual double GetResult() 
            { 
                double result = 0; 
                return result; 
            } 
            public static string checkNumberInput(string currentNumber, string inputString) 
            { 
                string result = ""; 
                if (inputString == ".") 
                { 
                    if (currentNumber.IndexOf(".") < 0) 
                    { 
                        if (currentNumber.Length == 0) 
                            result = "0" + inputString; 
                        else 
                            result = currentNumber + inputString; 
                    } 
                } 
                else if (currentNumber == "0") 
                { 
                    result = inputString; 
                } 
                else 
                { 
                    result = currentNumber + inputString; 
                }             return result; 
            } 
        } 
        class OperationAdd : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA + NumberB; 
                return result; 
            } 
        } 
        class OperationSub : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA - NumberB; 
                return result; 
            } 
        } 
        class OperationMul : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA * NumberB; 
                return result; 
            } 
        } 
        class OperationDiv : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB == 0) 
                    throw new Exception("除数不能为0。"); 
                result = NumberA / NumberB; 
                return result; 
            } 
        } 
        class OperationSqr : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberB * NumberB; 
                return result; 
            } 
        } 
        class OperationSqrt : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB < 0) 
                    throw new Exception("负数不能开平方根。"); 
                result = Math.Sqrt(NumberB); 
                return result; 
            } 
        } 
        class OperationReverse : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = -NumberB; 
                return result; 
            } 
        } 
    public class OperationFactory 

        public static Operation createOperate(string operate) 
        { 
            Operation oper = null; 
            switch (operate) 
            { 
                case "+": 
                    { 
                        oper = new OperationAdd(); 
                        break; 
                    } 
                case "-": 
                    { 
                        oper = new OperationSub(); 
                        break; 
                    } 
                case "*": 
                    { 
                        oper = new OperationMul(); 
                        break; 
                    } 
                case "/": 
                    { 
                        oper = new OperationDiv(); 
                        break; 
                    } 
                case "sqr": 
                    { 
                        oper = new OperationSqr(); 
                        break; 
                    } 
                case "sqrt": 
                    { 
                        oper = new OperationSqrt(); 
                        break; 
                    } 
                case "+/-": 
                    { 
                        oper = new OperationReverse(); 
                        break; 
                    } 
            }         return oper; 
        } 
      private void buttonAdd_Click(object sender, EventArgs e) 
            { 
                if (txtShow.Text != "") 
                { 
                    oper = OperationFactory.createOperate(((Button)sender).Text); 
                    
                    oper.NumberA = Convert.ToDouble(txtShow.Text); 
                    
                    bOperate = true; 
                } 
            } 
    private void buttonEqual_Click(object sender, EventArgs e) 
            { 
                if (txtShow.Text != "") 
                { 
                    if (((Button)sender).Text != "=") 
                    { 
                        oper = OperationFactory.createOperate(((Button)sender).Text); 
                    } 
                    oper.NumberB = Convert.ToDouble(txtShow.Text); 
                    txtShow.Text = oper.GetResult().ToString(); 
                    bOperate = true; 
                } 
            }
    http://topic.csdn.net/u/20100107/21/65aa1e7f-3298-4499-84bf-3bc907c905f5.html
      

  3.   

    我来把楼上的注释加一下:
    public class Operation 
        { 
            private double _numberA = 0; //输入的第一个数
            private double _numberB = 0; //输入的第二个数
            public double NumberA 
            { 
                get 
                { 
                    return _numberA; 
                } 
                set 
                { 
                    _numberA = value; 
                } 
            } 
            public double NumberB 
            { 
                get 
                { 
                    return _numberB; 
                } 
                set 
                { 
                    _numberB = value; 
                } 
            } 
            public virtual double GetResult() //返回计算结果
            { 
                double result = 0; 
                return result; 
            } 
            public static string checkNumberInput(string currentNumber, string inputString) //判断输入的数是否有小数点
            { 
                string result = ""; 
                if (inputString == ".") 
                { 
                    if (currentNumber.IndexOf(".") < 0) 
                    { 
                        if (currentNumber.Length == 0) 
                            result = "0" + inputString; 
                        else 
                            result = currentNumber + inputString; 
                    } 
                } 
                else if (currentNumber == "0") 
                { 
                    result = inputString; 
                } 
                else 
                { 
                    result = currentNumber + inputString; 
                }             return result; 
            } 
        } 
        class OperationAdd : Operation //加法子类
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA + NumberB; 
                return result; 
            } 
        } 
        class OperationSub : Operation //减法子类
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA - NumberB; 
                return result; 
            } 
        } 
        class OperationMul : Operation //乘法子类
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA * NumberB; 
                return result; 
            } 
        } 
        class OperationDiv : Operation //除法子类
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB == 0) //当除数为0的时候将抛出异常
                    throw new Exception("除数不能为0。"); 
                result = NumberA / NumberB; 
                return result; 
            } 
        } 
        class OperationSqr : Operation //自身的平方子类
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberB * NumberB; 
                return result; 
            } 
        } 
        class OperationSqrt : Operation //平方根
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB < 0) 
                    throw new Exception("负数不能开平方根。"); 
                result = Math.Sqrt(NumberB); 
                return result; 
            } 
        } 
        class OperationReverse : Operation //取反
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = -NumberB; 
                return result; 
            } 
        } 
    public class OperationFactory //计算器工厂类

        public static Operation createOperate(string operate) //根据输入的运算符判断创建类型
        { 
            Operation oper = null; 
            switch (operate) 
            { 
                case "+": 
                    { 
                        oper = new OperationAdd(); 
                        break; 
                    } 
                case "-": 
                    { 
                        oper = new OperationSub(); 
                        break; 
                    } 
                case "*": 
                    { 
                        oper = new OperationMul(); 
                        break; 
                    } 
                case "/": 
                    { 
                        oper = new OperationDiv(); 
                        break; 
                    } 
                case "sqr": 
                    { 
                        oper = new OperationSqr(); 
                        break; 
                    } 
                case "sqrt": 
                    { 
                        oper = new OperationSqrt(); 
                        break; 
                    } 
                case "+/-": 
                    { 
                        oper = new OperationReverse(); 
                        break; 
                    } 
            }         return oper; 
        } 
      private void buttonAdd_Click(object sender, EventArgs e) //加号单击事件
            { 
                if (txtShow.Text != "") 
                { 
                    oper = OperationFactory.createOperate(((Button)sender).Text); 
                    
                    oper.NumberA = Convert.ToDouble(txtShow.Text); 
                    
                    bOperate = true; 
                } 
            } 
    private void buttonEqual_Click(object sender, EventArgs e) //等号单击事件
            { 
                if (txtShow.Text != "") 
                { 
                    if (((Button)sender).Text != "=") 
                    { 
                        oper = OperationFactory.createOperate(((Button)sender).Text); 
                    } 
                    oper.NumberB = Convert.ToDouble(txtShow.Text); 
                    txtShow.Text = oper.GetResult().ToString(); 
                    bOperate = true; 
                } 
            } 
      

  4.   

     #12楼 得分:0回复于:2010-01-09 19:02:19public class Operation 
        { 
            private double _numberA = 0; 
            private double _numberB = 0; 
            public double NumberA 
            { 
                get 
                { 
                    return _numberA; 
                } 
                set 
                { 
                    _numberA = value; 
                } 
            } 
            public double NumberB 
            { 
                get 
                { 
                    return _numberB; 
                } 
                set 
                { 
                    _numberB = value; 
                } 
            } 
            public virtual double GetResult() 
            { 
                double result = 0; 
                return result; 
            } 
            public static string checkNumberInput(string currentNumber, string inputString) 
            { 
                string result = ""; 
                if (inputString == ".") 
                { 
                    if (currentNumber.IndexOf(".") < 0) 
                    { 
                        if (currentNumber.Length == 0) 
                            result = "0" + inputString; 
                        else 
                            result = currentNumber + inputString; 
                    } 
                } 
                else if (currentNumber == "0") 
                { 
                    result = inputString; 
                } 
                else 
                { 
                    result = currentNumber + inputString; 
                }             return result; 
            } 
        } 
        class OperationAdd : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA + NumberB; 
                return result; 
            } 
        } 
        class OperationSub : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA - NumberB; 
                return result; 
            } 
        } 
        class OperationMul : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberA * NumberB; 
                return result; 
            } 
        } 
        class OperationDiv : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB == 0) 
                    throw new Exception("除数不能为0。"); 
                result = NumberA / NumberB; 
                return result; 
            } 
        } 
        class OperationSqr : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = NumberB * NumberB; 
                return result; 
            } 
        } 
        class OperationSqrt : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                if (NumberB < 0) 
                    throw new Exception("负数不能开平方根。"); 
                result = Math.Sqrt(NumberB); 
                return result; 
            } 
        } 
        class OperationReverse : Operation 
        { 
            public override double GetResult() 
            { 
                double result = 0; 
                result = -NumberB; 
                return result; 
            } 
        } 
    public class OperationFactory 

        public static Operation createOperate(string operate) 
        { 
            Operation oper = null; 
            switch (operate) 
            { 
                case "+": 
                    { 
                        oper = new OperationAdd(); 
                        break; 
                    } 
                case "-": 
                    { 
                        oper = new OperationSub(); 
                        break; 
                    } 
                case "*": 
                    { 
                        oper = new OperationMul(); 
                        break; 
                    } 
                case "/": 
                    { 
                        oper = new OperationDiv(); 
                        break; 
                    } 
                case "sqr": 
                    { 
                        oper = new OperationSqr(); 
                        break; 
                    } 
                case "sqrt": 
                    { 
                        oper = new OperationSqrt(); 
                        break; 
                    } 
                case "+/-": 
                    { 
                        oper = new OperationReverse(); 
                        break; 
                    } 
            }         return oper; 
        } 
      private void buttonAdd_Click(object sender, EventArgs e) 
            { 
                if (txtShow.Text != "") 
                { 
                    oper = OperationFactory.createOperate(((Button)sender).Text); 
                    
                    oper.NumberA = Convert.ToDouble(txtShow.Text); 
                    
                    bOperate = true; 
                } 
            } 
    private void buttonEqual_Click(object sender, EventArgs e) 
            { 
                if (txtShow.Text != "") 
                { 
                    if (((Button)sender).Text != "=") 
                    { 
                        oper = OperationFactory.createOperate(((Button)sender).Text); 
                    } 
                    oper.NumberB = Convert.ToDouble(txtShow.Text); 
                    txtShow.Text = oper.GetResult().ToString(); 
                    bOperate = true; 
                } 
            } 
     
     
      

  5.   

    67u865yu6e5rtyhrsthgtregestgergfregesrgesr