我试图将用户输入从文本框转换为整数(在 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”类型的未处理异常附加信息:输入字符串的格式不正确。
2 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
您位于组件的构造函数中。因此文本可能为空并导致异常。
您可能想在文本更改或单击按钮等事件上添加解析逻辑。
因此,从表单生成器添加事件处理程序,然后将逻辑移至该方法中。
为了更好地理解每个方法何时被调用,我建议您在每个方法的第一个方法上添加一个断点{
,然后您可以跟踪事件流。
管理错误是一个好主意:您可以用 try...catch 包装或使用需要 out 变量的 int.TryParse 。
慕田峪4524236
TA贡献1875条经验 获得超5个赞
使用不同的方式
Convert.ToInt32(string);
int val = 0; Int32.TryParse(string, out val );
- 2 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消