代码可读性提升之多条件判断语句
2011-02-12 11:22
337 查看
有时,看到类似这样的C#语句:
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
这里只有四个条件,假设这里有超过四个或更多时,那时代码转行时可读性就更差了。我们可以将上面的代码改成:
privatestaticboolTraditionalVerify(intnumber)
{
if((number>0)&&(number>=10)&&(number%2>0)&&(number*2>100))
{
returntrue;
}
returnfalse;
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
这里只有四个条件,假设这里有超过四个或更多时,那时代码转行时可读性就更差了。我们可以将上面的代码改成:
///<summary>
///DemoforuseFunccombineconditions
///</summary>
///<paramname="number">needverifynumber</param>
///<returns>true</returns>
///<seealsocref="http://msdn.microsoft.com/en-us/library/kdxe4x4w.aspx"/>
///<remarks>authorPetterLiu 'target='_blank'>http://wintersun.cnblogs.com</remarks>privatestaticboolUseFunc(intnumber){varconditionlist=newList<Func<bool>>(){()=>number>0,()=>number>=10,()=>number%2>0,()=>number*2>100};returnconditionlist.TrueForAll(foo=>foo.Invoke());}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
注意粗体部分的代码,这样看上去更容易阅读。你可增多更多的条件判读语句。实际情况下,还可以考虑Strategies来重构代码。
希望对您开发有帮助!
作者:PetterLiu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-PetterLiuBlog。
相关文章推荐
- 代码可读性提升之多条件判断语句
- 6,javase代码实战-条件语句——判断某一年是闰年(一)
- 代码大全:第十五章 使用条件判断语句
- java中if判断条件语句测试代码总结
- 这是网友发的一道很常见的面试题, for(foo('A');foo('B')&&(i<2);foo('C')) ,其实考的就是for (初始化语句; 判断条件; 循环条件) ,现在详细解析一下!
- SQL 查询语句 IIF()处理条件判断
- 读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句
- 用短路表达式在语法层面上替代条件判断语句
- shell脚本编程:条件判断if语句使用小结
- smarty if判断语句中有多个条件时,可以用or和and
- swift if 条件判断语句
- 存储过程中sql语句按变量进行判断执行相应的查询条件
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case等关键字 以及条件判断语句(A?B:C)
- 多条件if()判断语句
- 代码可读性提升指南
- 9-13 循环语句、条件判断的使用方法及其相关示例
- JQuery 返回布尔值Is()条件判断方法代码
- 条件判断语句(if...else)与条件编译(#if .... #else ... #endif)
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
- themeleaf中的th:switch条件判断语句用法示例