decimal.TryParse和Convert.ToDecimal+try{} catch{}的性能比较
Posted lywu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了decimal.TryParse和Convert.ToDecimal+try{} catch{}的性能比较相关的知识,希望对你有一定的参考价值。
先说结论:decimal.TryParse性能远远超过try{} catch{},毕竟异常处理非常耗时间,至于decimal.TryParse的内部实现还不清楚,等项目结束再做调查。
源码:
using System; using System.Diagnostics; namespace ConsoleApp2 { class Program { static void Main(string[] args) { decimal result; string value = "test"; Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); for (int i = 0; i < 10000; i++) { result = decimal.TryParse(value.ToString(), out result) ? result : 0; } stopwatch.Stop(); Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds); stopwatch.Start(); for (int i = 0; i < 10000; i++) { try { result = Convert.ToDecimal(value); } catch { result = 0; continue; } } stopwatch.Stop(); Console.WriteLine(stopwatch.Elapsed.TotalMilliseconds); Console.ReadLine(); } } }
输出:
以上是关于decimal.TryParse和Convert.ToDecimal+try{} catch{}的性能比较的主要内容,如果未能解决你的问题,请参考以下文章