如何获取转换失败的值?一般来说,而不是在这个特定的例子中。
try
{
textBox1.Text = "abc";
int id = Convert.ToInt(textBox1.Text);
}
catch
{
// Somehow get the value for the parameter to the .ToInt method here
}
你可以这样吗?
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));
}
textBox1.Text = "abc";
try
{
int id = Convert.ToInt(textBox1.Text);
}
catch(FormatException ex)
{
MessageBox.Show(textBox1.Text);
}
与其捕获更昂贵的异常,不如使用 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
}
这是你想要的?
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
}