C#中有哪些优秀的编程实践使代码更加不言自明?

时间:2010-10-22 11:17:25

标签: c# .net coding-style

我认为使代码不言自明,而不需要在整个地方进行评论,这是一个很大的优势。但是,您是否可以建议如何减少代码量的方法和技术,使其更具可读性和可理解性。

您认为减少大if statements和嵌套for loops以及其他有时难以理解的结构的好方法也是如此。

以下是我认为C#应用程序更具可读性和不言自明的一些内容:

  • foreach循环转换为LINQ 语句。
  • 使用匿名函数减少事件处理程序的数量。

对于涵盖这些主题的书籍的建议也将不胜感激。

5 个答案:

答案 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循环太大,那么将它们的内部重构为具有合理名称的新方法。