4


我收到错误:未处理格式异常,输入字符串的格式不正确。
对于这一行:

int right = System.Convert.ToInt32(rightAngleTB.Text);

rightAngleTB 是 TextBox,值 Text 是“25”(没有“”)。

我真的没有看到问题:(

4

3 回答 3

10

你真的应该使用int.TryParse. 转换要容易得多,而且不会出现异常。

于 2012-04-27T20:08:08.823 回答
1

我经常注意到用户有时在他们的输入中有前导或尾随空格。使用 .Trim() 将摆脱前导和尾随空格。然后 TryParse 会给你一个 int (如果修剪后的 Text 是一个整数)而不抛出异常

使用以下内容:

int right = 0;  //Or you may want to set it to some other default value

if(!int.TryParse(rightAngleTB.Text.Trim(), out right))
{
    // Do some error handling here.. Maybe tell the user that data is invalid.
}

// do the rest of your coding..  

如果上述 TryParse 失败,则 right 的值将是您在上面的声明中设置的值。(在这种情况下为 0...)

于 2012-04-27T20:26:03.023 回答
0

试试下面的代码。

using System;

public class StringParsing
{
public static void Main()
{
  // get rightAngleTB.Text here
  TryToParse(rightAngleTB.Text);
}

private static void TryToParse(string value)
{
  int number;
  bool result = Int32.TryParse(value, out number);
  if (result)
  {
     Console.WriteLine("Converted '{0}' to {1}.", value, number);         
  }
  else
  {
     if (value == null) value = ""; 
     Console.WriteLine("Attempted conversion of '{0}' failed.", value);
  }
}
于 2012-04-27T20:21:03.843 回答