码迷,mamicode.com
首页 > 其他好文 > 详细

decimal.TryParse和Convert.ToDecimal+try{} catch{}的性能比较

时间:2020-12-08 12:34:05      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:src   png   ima   seconds   div   调查   技术   不清楚   ace   

先说结论: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{}的性能比较

标签:src   png   ima   seconds   div   调查   技术   不清楚   ace   

原文地址:https://www.cnblogs.com/lywu/p/14083474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!