C#需要帮助将字符串转换为Int?
所以...我有这段代码在这里,一切都看起来很完美,但是当我尝试运行这个时,它给出了格式化异常处理程序错误。C#需要帮助将字符串转换为Int?
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text != null)
{
minusTime = Convert.ToInt32(textBox1.Text); // fix this... idk what's even wrong. Just trying to assign user input to minusTime...
}
else
{
minusTime = 0;
}
}
*注意:textbox1是用户输入的整数值。 minusTime是要分配给用户输入的空整数。
我试着用“Convert.ToInt32(textBox1.Text)”来运行这个,但它仍然给我一个异常,说用户输入了错误的格式......当用户输入显然是一个int。
你想
bool result = Int32.TryParse(textBox1.Text, out minusTime);
如果输入不是整数返回false
这将应付。
有another overload这需要更多的信息,有关数量的可能的格式:
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out int result
)
这将应付货币符号等
尝试使用:
minusTime = Int32.Parse(textBox1.Text);
此外,将此行更改为'if(!string.IsNullOrEmpty(textBox1.Text))' –
[Int32.TryParse](http://msdn.microsoft.com/en-us/library/f02979c7.aspx)是另一个类似的解决方案 –
谢谢!这也很好!这比我当头一棒... – Shaku
private void textBox1_TextChanged(object sender, EventArgs e)
{
var minusTime;
if (textBox1.Text != null && int.TryParse(textBox1.Text, out minusTime))
{
}
else
{
minusTime = 0;
}
}
您可以使用:
int minusTime=0;
Int32.TryParse(textBox1.Text, out minusTime);
如果textBox1.Text不是整数,或者即使它为空,minusTime也将为0。
谢谢!这工作完美!谢谢你摆脱我的头痛,哈哈! – Shaku