将文本框转换为整数,从数组中获取字符串

我试图将用户输入从文本框转换为整数(在 c# 中),然后从具有该整数索引的数组中输出一个值。这是我的代码的一小部分:


 public Form1()

{

 InitializeComponent();

        string[] Cmaj = new string [7];

            Cmaj[1] = "C";

            Cmaj[2] = "D";

            Cmaj[3] = "E";

            Cmaj[4] = "F";

            Cmaj[5] = "G";

            Cmaj[6] = "A";

            Cmaj[7] = "B";



       int roman = int.Parse(textBox3.Text);

       textBox4.Text = Cmaj[roman];


}


但每次运行此命令时,我都会收到有关“int roman = int.Parse(textBox3.Text);”的错误 (下面列出)。我最初使用的是 Convert.ToInt32 而不是 int.Parse,但我看到了有关此主题的另一个问题,该问题说使用解析而不是转换。然而,这并没有太大改变。我应该怎么办?


错误:mscorlib.dll 中发生“System.FormatException”类型的未处理异常


附加信息:输入字符串的格式不正确。


天涯尽头无女友
浏览 72回答 2
2回答

白衣非少年

您位于组件的构造函数中。因此文本可能为空并导致异常。您可能想在文本更改或单击按钮等事件上添加解析逻辑。因此,从表单生成器添加事件处理程序,然后将逻辑移至该方法中。为了更好地理解每个方法何时被调用,我建议您在每个方法的第一个方法上添加一个断点{,然后您可以跟踪事件流。管理错误是一个好主意:您可以用 try...catch 包装或使用需要 out 变量的 int.TryParse 。

慕田峪4524236

使用不同的方式Convert.ToInt32(string);int val = 0; Int32.TryParse(string, out val );
打开App,查看更多内容
随时随地看视频慕课网APP