C#中的良好编程习惯是什么使代码更易于理解?

问题描述:

我认为使代码不言自明,无需在各处留言,这是一大优势。但是,您能否建议一些方法和技巧,以减少代码量,使其更具可读性和可理解性。C#中的良好编程习惯是什么使代码更易于理解?

另外你怎么看,是减少大if statements和嵌套for loops和其他结构,有时很难理解乍一看,好技术。

这里有一些我想的事情会我的C#应用​​程序更具可读性和不言自明:

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

此外,有关涵盖这些主题的书籍的建议将不胜感激。

我建议你看看Robert C Martin的Clean Code。这是一本致力于编写可读代码的书。强烈推荐,如果你问我。

Resharper也非常有用,因为它有很多关于命名,减少嵌套等的建议。

+1

我一直使用Resharper,它非常方便。我只想知道为什么微软默认情况下并没有将大部分Resharper功能放入VS中。 – Vitalij 2010-10-22 11:36:19

除了语法/结构方面的考虑,一致性是非常重要的 - 代码样式和格式偏好各不相同,这很好,但在一个项目中,您应该标准化为尽可能多的位置以避免在阅读码。

我为可读代码而努力的主要原因是变量名称,它使变量和方法名称变得明显,明确了方法的作用。

如果你的if语句和for循环太大,那么用合理的名称将它们的内部重构为新的metods。

使用具有默认值的命名参数的方法可以帮助清除重载,这通常会导致更少的代码。我自己也这么做。也使得界面更易于阅读和使用。

如果一个foreach或其他循环只是说了一些关于循环条目的内容而不是一般的方法,我经常会将循环体重构为新的方法。这使得第一种方法更易于阅读。

反转if语句以减少嵌套可以使您的代码更易于阅读。

if (!something) return; 
// more code here 

这可以去掉括号和1-2行。

如果方法变得太大,请将其重构为更小的方法。

使方法和变量名称自相矛盾。

使用描述性变量和函数名称。

将大的函数分解为子函数,以便将属于一组的语句分组在一起,这可以很好地用于代码重用。

尽量保持函数尽可能平坦,并将嵌套推入不同的函数,这样每个嵌套层次都可以获得自己的描述性函数名称。

我尽量避免嵌套多个if和for在同一个函数中。 如果你有一个大的部分,尝试重构的部分自己的功能。 这样if会更容易理解,任何解释都可以在真/假函数名称中。

不要总是转换为linq,大的linq语句通常更难以阅读,然后使用if结构和可能的变量读取正常的循环。

对临时数据使用变量而不是在语句周围包装语句。这既增强了可读性,也为您提供了解释临时变量的机会,并且使得调试更加容易,因为该行将精确定位语句而不是集合或嵌套语句。

我从Prentice Hall那里读到一本关于它的名为“Clean Code”的相当不错的书,这本书深入到这里。