试试这个:
int x = Int32.Parse(TextBoxD1.Text);或更好的是:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);另外,由于Int32.TryParse返回bool您可以使用其返回值来决定解析尝试的结果:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}如果您很好奇, Parse和TryParse之间的区别总结如下:
TryParse 方法类似于 Parse 方法,但是如果转换失败,TryParse 方法不会引发异常。如果 s 无效且无法成功解析,则无需使用异常处理来测试 FormatException。 -MSDN
Convert.ToInt32( TextBoxD1.Text );如果您确信文本框的内容是有效的int ,请使用此选项。一个更安全的选择是
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );这将为您提供一些您可以使用的默认值。 Int32.TryParse还返回一个布尔值,指示它是否能够解析,因此您甚至可以将其用作if语句的条件。
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int.TryParse()如果文本不是数字,则不会抛出该错误。