C# TryParse 和 Parse
来源:互联网 发布:hbase查找数据方式 编辑:程序博客网 时间:2024/06/07 10:16
class Program { //除去string外的所有基元类型,会发现它们都有两个将字符串转型为本身的方法:Parse和TryParse。double为例如下: //public static double Parse(string s) //public static bool TryParse(string s, out double result) //两者最大的区别就是,如果字符串格式不能满足转换的要求,Parse方法将会引发一个异常; //TryParse方法则不会引发异常,它会返回false,同时将result置为0. //下面是测试代码: static void Main(string[] args) { double re; long ticks; Stopwatch sw = Stopwatch.StartNew(); for (int i = 1; i < 1000; i++) { try { re = double.Parse("123"); } catch { re = 0; } } sw.Stop(); ticks = sw.ElapsedTicks; Console.WriteLine("double.Parse() 成功,{0} ticks", ticks); sw = Stopwatch.StartNew(); for (int i = 1; i < 1000; i++) { if (double.TryParse("123", out re) == false) { re = 0; } } sw.Stop(); ticks = sw.ElapsedTicks; Console.WriteLine("double.TryParse() 成功,{0} ticks", ticks); sw = Stopwatch.StartNew(); for (int i = 1; i < 1000; i++) { try { re = double.Parse("aaa"); } catch { re = 0; } } sw.Stop(); ticks = sw.ElapsedTicks; Console.WriteLine("double.Parse() 失败,{0} ticks", ticks); sw = Stopwatch.StartNew(); for (int i = 1; i < 1000; i++) { if (double.TryParse("aaa", out re) == false) { re = 0; } } sw.Stop(); ticks = sw.ElapsedTicks; Console.WriteLine("double.TryParse() 失败,{0} ticks", ticks); Console.ReadKey(); } }
下面是运行结果:
可见,如果两个方法都运行成功,两者的效率在一个数量级上;但若执行失败,Parse的效率就显得太低了。
读《改善C#程序的157个建议》笔记抄录。
0 0
- C# TryParse 和 Parse
- c# Parse 和 TryParse
- parse和Tryparse区别
- Parse和TryParse区别
- Parse和TryParse
- Parse 和 TryParse
- C# 中Parse 和TryParse的效率问题
- int.Parse()和int.Tryparse
- 浅析Convert,Parse和TryParse
- 浅析Convert,Parse和TryParse
- C# Parse and TryParse 方法详解
- 黑马程序员 int.Parse()和int.TryParse()
- c#类型转换(Convert.ToInt32与Int32.Parse,Int32.TryParse的区别和性能)
- 有关C#中in.Parse()和int.TryParse()的一点思考
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- java IO(三):数据操作流、合并流、回退流、对象序列化、字符编码问题、压缩流
- PAT A 1005. Spell It Right (20)
- iOS7—Day by day—Day14:Interactive View Controller Transitions
- MakeSpace:什物云存储版Dropbox 融800万美元
- 索引的建立 更新策略
- C# TryParse 和 Parse
- Java 泛型通配符?解惑
- 一直对自定义监听器有疑问,所以转一下,有空理解下
- 【js设计模式笔记---接口】
- 64位linux 系统运行32位程序解决方法
- iOS7—Day by day—Day15:CoreImage Filters
- Hadoop MapReduce2.0(Yarn)
- 解析Jquery取得iframe中元素的几种方法
- 尽量不要在头文件中包含另外的头文件