-8

如何获取转换失败的值?一般来说,而不是在这个特定的例子中。

try
{
    textBox1.Text = "abc";
    int id = Convert.ToInt(textBox1.Text);
}
catch
{
    // Somehow get the value for the parameter to the .ToInt method here 
}
4

4 回答 4

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));
}
于 2012-11-19T07:57:40.707 回答
0
textBox1.Text = "abc";
try
{      
  int id = Convert.ToInt(textBox1.Text);
}
catch(FormatException ex)
{
   MessageBox.Show(textBox1.Text);
}
于 2012-11-19T10:50:56.640 回答
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
}
于 2012-11-19T07:58:56.880 回答
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
}
于 2012-11-19T07:59:47.667 回答