如何获取无法转换的值?一般而言,而不是在这个单一的具体例子中。
try
{
textBox1.Text = "abc";
int id = Convert.ToInt(textBox1.Text);
}
catch
{
// Somehow get the value for the parameter to the .ToInt method here
}
答案 0 :(得分:5)
你可以这样做吗?
int id;
if(int.TryParse(textbox.Text, out id)
{
//Do something
}
else
{
MessageBox.Show(textbox.Text);
}
您也可以使用先前建议的try catch来捕获异常并在catch中显示textbox.Text。
编辑:(问题改变方向后) 要显示无法转换的值,您可以执行以下操作。
string myValue = "some text";
int id = 0;
try
{
id = Convert.ToInt32(myValue);
}
catch (FormatException e)
{
MessageBox.Show(String.Format("Unable to convert {0} to int", myValue));
}
答案 1 :(得分:0)
使用int.TryParse()而不是捕获更昂贵的异常。 TryParse返回一个布尔值,指定转换是失败还是成功。它还将转换后的值作为输出参数返回。
int result = 0;
string input = "abc";
if (int.TryParse(input, out result))
{
//Converted value is in out parameter
}
else
{
//Handle invalid input here
}
答案 2 :(得分:0)
这是你在找什么?
int i = 0;
if (Int32.TryParse (textbox.Text, out i))
{
// i is good here
}
else
{
// i is BAD here, do something about it, like displaying a validation message
}
答案 3 :(得分:0)
textBox1.Text = "abc";
try
{
int id = Convert.ToInt(textBox1.Text);
}
catch(FormatException ex)
{
MessageBox.Show(textBox1.Text);
}