[英]Converting Textbox to Integer, Taking String from Array
我试图将用户输入从文本框转换为整数(在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'类型的未处理异常
附加信息:输入字符串的格式不正确。
谢谢。
您在组件的构造函数中。 因此,文本可能为空并导致异常。
可能您想在诸如文本更改或按钮单击之类的事件上添加解析逻辑。
因此,从表单构建器添加事件处理程序,而不是将逻辑移到该方法中。
为了更好地理解每个方法调用的时间,建议您在每个方法的第一个{
处添加一个断点,然后可以遵循事件流。
管理错误是一个好主意:您可以使用try ... catch进行包装,也可以使用需要out变量的int.TryParse。
使用不同的方式
Convert.ToInt32(string);
int val = 0; Int32.TryParse(string, out val );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.