zoukankan      html  css  js  c++  java
  • 代码可读性提升之多条件判断语句

            有时,看到类似这样的C#语句:

       1:          private static bool TraditionalVerify(int number)
       2:          {
       3:              if ((number > 0) && (number >= 10) && (number % 2 > 0) && (number * 2 > 100))
       4:              {
       5:                  return true;
       6:              }
       7:              return false;
       8:          }

            这里只有四个条件,假设这里有超过四个或更多时,那时代码转行时可读性就更差了。我们可以将上面的代码改成:

       1:          /// <summary>
       2:          /// Demo for use Func combine conditions
       3:          /// </summary>
       4:          /// <param name="number">need verify number</param>
       5:          /// <returns>true</returns>
       6:          /// <seealso cref="http://msdn.microsoft.com/en-us/library/kdxe4x4w.aspx"/>
       7:          /// <remarks>author Petter Liu http://wintersun.cnblogs.com</remarks>
       8:          private static bool UseFunc(int number)
       9:          {
      10:              var conditionlist = new List<Func<bool>>()
      11:              {
      12:                   () => number > 0,
      13:                   () => number >= 10,
      14:                   () => number % 2 > 0,
      15:                   () => number * 2 > 100
      16:              };
      17:   
      18:              return conditionlist.TrueForAll(foo => foo.Invoke());
      19:          }

           注意粗体部分的代码,这样看上去更容易阅读。你可增多更多的条件判读语句。实际情况下,还可以考虑Strategies来重构代码。

           希望对您开发有帮助!


    作者:Petter Liu
    出处:http://www.cnblogs.com/wintersun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    该文章也同时发布在我的独立博客中-Petter Liu Blog

  • 相关阅读:
    一个基于JBoss5.1+EJB3.0 登陆应用
    专题开发十二:JEECG微云高速开发平台-基础用户权限
    linux监控脚本
    centos Ddos防范开源软件使用及apache ab压测 测试
    centos curl web站点监控实践
    linux Qt5开发案例实践
    CentOS 基于KVM的云计算之虚拟化libvirt shell --- virsh
    linux shell命令行下操作mysql 删除mysql指定数据库下的所有表--亲测成功百分百测试通过--绝对可靠
    C指针
    Aix5~6小机运维
  • 原文地址:https://www.cnblogs.com/wintersun/p/1952199.html
Copyright © 2011-2022 走看看