Каким образом я могу присвоить значение переменным, которые рассчитываются внутри конструкции switch?

Только начал изучать C#. Внутри конструкции switch рассчитываю значение переменной R. После закрытия конструкции switch пытаюсь совершить действия с рассчитанными R (их семь, как и семь конструкций switch).

Выдает ошибку: Использование локальной переменной R7, которой не присвоено значение

Ниже код. Таких конструкции switch у меня 7, соответственно выдает 7 ошибок.

switch (comboBox7.Text)
{
    case "1":
        R7 = metric7 * 1;
        break;
    case "2":
        R7 = metric7 * 2;
        break;
    case "3":
        R7 = metric7 * 3;
        break;
    case "4":
        R7 = metric7 * 4;
        break;
    case "5":
        R7 = metric7 * 5;
        break;
}
Rsum = R1 + R2 + R3 + R4 + R5 + R6 + R7;
textBox18.Text = Convert.ToString(Rsum / 5);

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

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

Для преобразования строки в число вам не нужен switch. Вместо этого можно использовать int.Parse или int.TryParse.

if (int.TryParse(comboBox7.Text, out int number))
{
    R7 = metric7 * number;
    int sum = (R1 + R2 + R3 + R4 + R5 + R6 + R7) / 5;
    textBox18.Text = sum.ToString();
}
else
{
    textBox18.Text = "Выберите значение";
}

Если же вам нужно объявить и использовать переменную вне блока кода, в котором она присваивается, можете ей присвоить значение по умолчанию, например int R7 = 0 вместо просто int R7.

→ Ссылка