试试这个:
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()
如果文本不是数字,则不会抛出该错误。