harlow1999的专栏

学习ASP+SQL中……

Convert.ToInt32与Int32.Parse区别及Int32.TryParse

如标题。

用下列方法判定TEXTBOX中是否为数字比较简单有效。

//string myString = "1234"; 
string myString = null; 
int myint = 0;
myint = Convert.ToInt32(myString); 
Console.Write(myint+"/r/n");
myint = Int32.Parse(myString); 
Console.Write(myint+"/r/n");
Int32.TryParse(myString, out myint); 
Console.Write(myint+"/r/n");

运行结果:
Convert.ToInt32()在null时不抛异常而是返回0;
Int32.Parse()要抛异常;
Int32.TryParse()不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。

得出结论:
3个方法几乎没有差异!

如果要追求完美,那么可以参靠一下性能的差异:
Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()。

个人建议:.NET1.1下用Int32.Parse();.NET2.0用Int32.TryParse()。

为什么这样呢?
因为:Convert.ToInt32会把最终的解析工作代理给Int32.Parse,而Int32.Parse和Int32.TryParse则分别把解析工作直接代理给Number.ParseInt32和Number.TryParseInt32,前者在出现解析错误时会抛出异常,而后者则仅仅返回 false。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭