Exemplo n.º 1
0
 private void ResetOnClearButton(object sender, RoutedEventArgs e)
 {
     NumberField.Clear();
     ArithmeticOperations.Reset();
     NumberField.Text = "0";
 }
Exemplo n.º 2
0
        private void LayoutButtonClick(object sender, RoutedEventArgs e)
        {
            if (!(sender is Button button))
            {
                return;
            }

            if (!double.TryParse(button.Content.ToString(), out _))
            {
                switch (button.Content.ToString())
                {
                case "-":
                    _operationActive = true;
                    UpdateResult(ArithmeticOperations.ComputeResult(button.Content.ToString(),
                                                                    double.Parse(NumberField.Text)));
                    break;

                case "+":
                    _operationActive = true;
                    UpdateResult(ArithmeticOperations.ComputeResult(button.Content.ToString(),
                                                                    double.Parse(NumberField.Text)));
                    break;

                case "/":
                    _operationActive = true;
                    UpdateResult(ArithmeticOperations.ComputeResult(button.Content.ToString(),
                                                                    double.Parse(NumberField.Text)));
                    break;

                case "*":
                    _operationActive = true;
                    UpdateResult(ArithmeticOperations.ComputeResult(button.Content.ToString(),
                                                                    double.Parse(NumberField.Text)));
                    break;

                case ".":
                    if (_operationActive)
                    {
                        return;
                    }
                    if (NumberField.Text.Any(t => t == '.'))
                    {
                        return;
                    }
                    NumberField.Text += ".";
                    break;

                case "=":
                    UpdateResult(ArithmeticOperations.ComputeResult(button.Content.ToString(),
                                                                    double.Parse(NumberField.Text)));
                    break;

                default:
                    MessageBox.Show("Error");
                    break;
                }
            }
            else
            {
                if (_operationActive)
                {
                    NumberField.Clear();
                    _operationActive = !_operationActive;
                }

                if (NumberField.Text != "0" && NumberField.Text != "∞" && NumberField.Text != "-∞")
                {
                    NumberField.Text += button.Content.ToString();
                }
                else
                {
                    NumberField.Text = button.Content.ToString();
                }
            }
        }
Exemplo n.º 3
0
        private void ButtonClick(object sender, RoutedEventArgs e)
        {
            if (!(sender is Button button))
            {
                return;
            }

            if (double.TryParse(button.Content.ToString(), out _))
            {
                if (_operationActive)
                {
                    NumberField.Clear();
                    _operationActive = false;
                }

                if (NumberField.Text == "0" || NumberField.Text == "∞" || NumberField.Text == "-∞")
                {
                    NumberField.Text = button.Content.ToString();
                }
                else
                {
                    NumberField.Text += button.Content.ToString();
                }

                return;
            }

            switch (button.Content.ToString())
            {
            case "+":
                _operationActive = true;
                SetResult(ArithmeticOperations.GetResult(button.Content.ToString(), double.Parse(NumberField.Text)));
                break;

            case "-":
                _operationActive = true;
                SetResult(ArithmeticOperations.GetResult(button.Content.ToString(), double.Parse(NumberField.Text)));
                break;

            case "*":
                _operationActive = true;
                SetResult(ArithmeticOperations.GetResult(button.Content.ToString(), double.Parse(NumberField.Text)));
                break;

            case "/":
                _operationActive = true;
                SetResult(ArithmeticOperations.GetResult(button.Content.ToString(), double.Parse(NumberField.Text)));
                break;

            case "=":
                SetResult(ArithmeticOperations.GetResult(button.Content.ToString(), double.Parse(NumberField.Text)));
                break;

            case ".":

                if (_operationActive)
                {
                    return;
                }

                if (NumberField.Text.Any(t => t == '.'))
                {
                    return;
                }

                NumberField.Text += ".";
                break;

            default:
                MessageBox.Show("Something went wrong...");
                break;
            }
        }