你的程序里有很大的问题,可以说是一种很坏的写法。看这段代码:
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来判断,因为抛出异常是个很耗费效率的操作,如果你这段程序转换一个很长的字符串的话那是要出问题的。
一点浅见,不要生气,呵呵。
