Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET技巧

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

来源:中文源码网    浏览:133 次    日期:2024-05-06 03:41:02
【下载文档:  Convert.ToInt32与Int32.Parse区别及Int32.TryParse.txt 】


Convert.ToInt32与Int32.Parse区别及Int32.TryParse
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string myString = "1234"; 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"); } } } 表面上看,可见3个方法都实现了同样的效果! 那么我们把代码改一下: //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。

相关内容