Parase 如果不能满足转换条件,抛出异常;
TrypParase 如果不能满足条件返回false,同时将值置为0
性能比较
1 double de; 2 long ticks; 3 Stopwatch watch = Stopwatch.StartNew(); 4 for (int i = 0; i < 100; i++) 5 { 6 try 7 { 8 de = double.Parse("123"); 9 } 10 catch (Exception ex) 11 { 12 13 de = 0; 14 } 15 } 16 watch.Stop(); 17 ticks = watch.ElapsedTicks; 18 Console.WriteLine("double.Parase()成功,{0} Ticks", ticks); 19 watch = Stopwatch.StartNew(); 20 for (int i = 0; i < 100; i++) 21 { 22 if (!double.TryParse("123", out de)) 23 { 24 de = 0; 25 } 26 } 27 watch.Stop(); 28 ticks = watch.ElapsedTicks; 29 Console.WriteLine("double.TryParase(),{0} Ticks", ticks); 30 watch = Stopwatch.StartNew(); 31 for (int i = 0; i < 100; i++) 32 { 33 try 34 { 35 de = double.Parse("abc"); 36 } 37 catch (Exception ex) 38 { 39 40 de = 0; 41 } 42 } 43 watch.Stop(); 44 ticks = watch.ElapsedTicks; 45 Console.WriteLine("double Parase() errors,{0} Ticks",ticks); 46 watch = Stopwatch.StartNew(); 47 for (int i = 0; i < 100; i++) 48 { 49 if (!double.TryParse("abc", out de)) 50 { 51 de = 0; 52 } 53 } 54 watch.Stop(); 55 ticks = watch.ElapsedTicks; 56 Console.WriteLine("double Parase() errors,{0} Ticks", ticks);