Переключение оператора с помощью текстового поля в формах - PullRequest
0 голосов
/ 14 марта 2019

Я создаю форму, которая берет входной номер из текстового поля, а затем возьмет номер, который был введен, и отобразит эквивалент римской цифры в другом текстовом поле.

Моя форма:

enter image description here

private void convertButton_Click(object sender, EventArgs e)
    {
        int numberInput;
        switch (numberInput)

Здесь я продолжаю получать код ошибки.«Switch (numberInput)» рассматривается как и неназначенная локальная переменная.Как мне назначить его так, чтобы он мог получить доступ ко всем целым числам регистра?

        {
            case 1:
                outputTextBox.Text = "I";
                break;
            case 2:
                outputTextBox.Text = "II";
                break;
            case 3:
                outputTextBox.Text = "III";
                break;
            case 4:
                outputTextBox.Text = "IV";
                break;
            case 5:
                outputTextBox.Text = "V";
                break;
            case 6:
                outputTextBox.Text = "VI";
                break;
            case 7:
                outputTextBox.Text = "VII";
                break;
            case 8:
                outputTextBox.Text = "VIII";
                break;
            case 9:
                outputTextBox.Text = "IX";
                break;
            case 10:
                outputTextBox.Text = "X";
                break;
            default:
                MessageBox.Show("Please enter and number between 1 and 10. Thank you!");
                break;


        }

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Convert.ToInt32 может выдать исключение, если синтаксический анализ не выполнен. Другой метод заключается в Int.Parse:

int numberInput = int.Parse(textbox1.Text.Trim());

или еще лучше

int numberInput;
if(int.TryParse(textbox1.Text.Trim(), out numberInput))
  {
      switch (numberInput) 
        ...

  }
0 голосов
/ 14 марта 2019

Потому что ваша переменная еще не назначена int numberInput; и поэтому ошибка. Вы сказали, что входные данные поступают из TextBox, в этом случае сделайте, как показано ниже, предполагая textbox1 имя вашего экземпляра элемента управления TextBox

int numberInput = Convert.ToInt32(this.textbox1.Text.Trim());
...