как сделать так чтоб после сложение 5 + 5 при повторном нажатии = прибалвялось по 5 а не по 10

Подскажите в чем дело как сделать так чтоб после повторного нажатия на равно при сложении чисел 5 + 5 повторного нажатия выдало не 20 а 15, где ошибка как исправить? Мои методы:

public void math_action(char action)
     {
     if (this.user_action == ' ' || string.IsNullOrWhiteSpace(this.result_lab.Text))
     {
         return;
     }

     this.second_num = Convert.ToDouble(this.result_lab.Text);

     if (this.dec && !lastButtonWasOperation)
     {
         Score(); // Вызываем функцию Score для выполнения предыдущей операции
         this.result_lab2.Text = Convert.ToString(this.first_num);
     }
     else
     {
         this.first_num = Convert.ToDouble(this.result_lab.Text);
         this.result_lab2.Text = Convert.ToString(this.first_num);
     }

     this.user_action = action;

     switch (action)
     {
         case '+': this.result_lab2.Text += " + "; break;
         case '-': this.result_lab2.Text += " - "; break;
         case '*': this.result_lab2.Text += " * "; break;
         case '/': this.result_lab2.Text += " / "; break;
         case '%': this.result_lab2.Text += " % "; break;
     }

     this.again = true;
     this.dec = true;
     lastButtonWasOperation = true;
 }
public void Score()
 {
     if (this.user_action == ' ' || string.IsNullOrWhiteSpace(this.result_lab.Text))
     {
         return;
     }

     double second = Convert.ToDouble(this.result_lab.Text);
     double res = 0;
     this.result_lab2.Text += Convert.ToString(second) + "=";

     switch (this.user_action)
     {
         case '+': res = this.first_num + second; break;
         case '-': res = this.first_num - second; break;
         case '*': res = this.first_num * second; break;
         case '%': res = this.first_num * (second / 100); break; // Изменено здесь
         case '/':
             if (second != 0)
             {
                 res = this.first_num / second;
             }
             else
             {
                 MessageBox.Show(this, "Действие запрещено, на 0 делить нельзя!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 this.result_lab2.Text = "";
             }
             break;
     }
     
     this.first_num = res; // Сохраняем результат как первое число для следующей операции
     
     this.result_lab.Text = Convert.ToString(res);
    private void button_sum_Click(object sender, EventArgs e)
{
    if (user_action == ' ')
    {
        return;
    }
    this.dec = false;
    this.again = true;
    
    Score();

}

Ответы (1 шт):

Автор решения: ITBEGINER

Решил, добавив флаг для проверки и переписал логику в методе Score.

→ Ссылка