我认为使代码不言自明,而不需要在整个地方进行评论,这是一个很大的优势。但是,您是否可以建议如何减少代码量的方法和技术,使其更具可读性和可理解性。
您认为减少大if statements
和嵌套for loops
以及其他有时难以理解的结构的好方法也是如此。
以下是我认为C#应用程序更具可读性和不言自明的一些内容:
foreach
循环转换为LINQ
语句。对于涵盖这些主题的书籍的建议也将不胜感激。
答案 0 :(得分:9)
我建议你看看Robert C Martin的Clean Code。这是一本专门编写可读代码的书。如果你问我,强烈推荐。
Resharper也非常有用,因为它有很多关于命名,减少嵌套等的建议。
答案 1 :(得分:1)
除了语法/结构方面的考虑,一致性非常重要 - 代码样式和格式化首选项各不相同,这很好,但在项目中你应该尽可能标准化,以避免在阅读代码时不得不重新调整自己
答案 2 :(得分:1)
使用具有默认值的命名参数的方法可以帮助清除重载,这通常会导致更少的代码。我自己做的很多。还使界面更易于阅读和使用。
如果一个foreach或其他循环只说了一些关于循环项的内容而不是一般的方法,我经常将循环体重构为一个新方法。这使第一种方法更容易阅读。
反转if语句以减少嵌套通常可以使代码更容易阅读。
if (!something) return;
// more code here
这摆脱了括号和1-2行。
如果方法太大,请将其重构为较小的方法。
使方法和变量名称自我解释。
答案 3 :(得分:1)
使用描述性变量和函数名称。
将大型函数拆分为子函数,以便将属于一起的语句组合在一起,这样可以很好地重用代码。
尽量保持函数尽可能平坦并将嵌套推送到单独的函数中,这样每个嵌套级别都可以获得自己的描述性函数名称。
我尝试避免在同一个函数中嵌套多个ifs和for。 如果你有一个大部件的if,尝试将部件重构为他们自己的功能。 这样,if将更容易理解,任何解释都可以在真/假函数名称中。
不要总是转换为linq,大的linq语句通常比使用if构造和可能的变量更常难以读取。
对临时数据使用变量而不是在语句周围包装语句。这既增强了可读性,又让您有机会命名临时变量进行解释,并使调试更容易,因为行将精确定义一个精确的语句而不是一个嵌套语句的集合。
有一本非常好的书,我从Prentice Hall那里读到了一本名为“清洁代码”的书,对此有更深入的了解。
答案 4 :(得分:0)
我为可读代码寻找的主要名称是变量名称,它使变量和方法名称变得明显,使得该方法的作用变得明显。
如果你的if语句和for循环太大,那么将它们的内部重构为具有合理名称的新方法。