Example #1
0
        /// <summary>
        /// functie die twee getallen uit de stack haald en juist operatie uitvoord en het antwoord terug op de stack zet
        /// </summary>
        /// <param name="operation"></param>
        /// <returns></returns>
        private string Calculate(string operation)
        {
            label.Text = null;
            decimal two = 1;
            decimal one = 2;
            decimal awnser;

            switch (selectedStack)
            {
            case "arraystack":
                two = Astack.Pop();
                one = Astack.Pop();
                break;

            case "Liststack":

                two = Lstack.Pop();
                one = Lstack.Pop();
                break;

            case "MyListStack":

                two = MLstack.Pop();
                one = MLstack.Pop();
                break;
            }
            try
            {
                switch (operation)
                {
                case "/":
                    awnser = one / two;
                    return(Convert.ToString(awnser));

                case "*":
                    awnser = one * two;
                    return(Convert.ToString(awnser));

                case "-":
                    awnser = one - two;
                    return(Convert.ToString(awnser));

                case "+":
                    awnser = one + two;
                    return(Convert.ToString(awnser));
                }
            }
            catch (System.DivideByZeroException e)
            {
                listbox.Items.Remove(0);
                MessageBox.Show("Tried to devide by zero");
                return(null);
            }
            return(null);
        }