日期:2009-06-28  浏览次数:20380 次

你的程序里有很大的问题,可以说是一种很坏的写法。看这段代码:
      for (Int32 i = 0 ; i < _text.Length; i++)

      {
        try
        {
          //试着解析character 成Int32
          Int32.Parse(_text[i].ToString());
          _int.Append(_text[i].ToString());
        }
        catch
        {
          //如果character 不是阿拉伯数字,将发生一个错误"Invalid Input String"
          _string.Append(_text[i].ToString());
        }
      }
      Label1.Text = "String: " + _string.ToString();
      Label1.Text += "<br>Int32: " + _int.ToString();

      Int32 _newInt = Int32.Parse(_int.ToString());

      Label2.Text = "The Int32 value squared is: ";
      Label2.Text += (_newInt * _newInt).ToString();
    }
这段代码违背了有关效率的一个重要原则,那就是永远不能把可以预见到的exception作为程序正常流程中达到某个目的的一种手段。你需要预先判断一下_Text[i]是否可以转换成int32,而不要利用抛出Exception来判断,因为抛出异常是个很耗费效率的操作,如果你这段程序转换一个很长的字符串的话那是要出问题的。

一点浅见,不要生气,呵呵。