码迷,mamicode.com
首页 > Windows程序 > 详细

【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内

时间:2017-12-06 16:16:08      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:判断   seconds   ide   建议   模式   循环   write   注意   编写高质量代码   

 

建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内

 如果需要在循环中引发异常,你需要特别注意,应为抛出异常是一个相当影响性能的过程。应该尽量在循环当中对异常发生的一些条件进行判断,然后根据条件进行处理。

做个测试:

            Stopwatch watch = Stopwatch.StartNew();
            int x = 0;
            for (int i = 0; i < 10000; i++)
            {
                try
                {
                    int j = i / x;
                }
                catch
                {
                }
            }
            Console.WriteLine(watch.ElapsedMilliseconds);

            watch = Stopwatch.StartNew();
            for (int i = 0; i < 10000; i++)
            {
                if (x == 0)
                {
                    continue;
                }
                int j = i / x;
            }
            Console.WriteLine(watch.ElapsedMilliseconds);
            Console.ReadKey();

输出为:

796

0

以上代码中,我们预见了代码肯能会发生DivideByZeroException异常,于是,调正策略,对异常发生的条件进行了特殊处理:Continue让效率得到了极大的提升。

 

 

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内

标签:判断   seconds   ide   建议   模式   循环   write   注意   编写高质量代码   

原文地址:http://www.cnblogs.com/farmer-y/p/7992813.html

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