2010-10-22 96 views
4

我認爲使代碼不言自明,無需在各處留言,這是一大優勢。但是,您能否建議一些方法和技巧,以減少代碼量,使其更具可讀性和可理解性。C#中的良好編程習慣是什麼使代碼更易於理解?

另外你怎麼看,是減少大if statements和嵌套for loops和其他結構,有時很難理解乍一看,好技術。

這裏有一些我想的事情會我的C#應用​​程序更具可讀性和不言自明:

  • 轉換foreach環插入LINQ 語句。
  • 使用匿名函數來減少事件處理程序的數量。

此外,有關涵蓋這些主題的書籍的建議將不勝感激。

回答

9

我建議你看看Robert C Martin的Clean Code。這是一本致力於編寫可讀代碼的書。強烈推薦,如果你問我。

Resharper也非常有用,因爲它有很多關於命名,減少嵌套等的建議。

+1

我一直使用Resharper,它非常方便。我只想知道爲什麼微軟默認情況下並沒有將大部分Resharper功能放入VS中。 – Vitalij 2010-10-22 11:36:19

1

除了語法/結構方面的考慮,一致性是非常重要的 - 代碼樣式和格式偏好各不相同,這很好,但在一個項目中,您應該標準化爲儘可能多的位置以避免在閱讀碼。

0

我爲可讀代碼而努力的主要原因是變量名稱,它使變量和方法名稱變得明顯,明確了方法的作用。

如果你的if語句和for循環太大,那麼用合理的名稱將它們的內部重構爲新的metods。

1

使用具有默認值的命名參數的方法可以幫助清除重載,這通常會導致更少的代碼。我自己也這麼做。也使得界面更易於閱讀和使用。

如果一個foreach或其他循環只是說了一些關於循環條目的內容而不是一般的方法,我經常會將循環體重構爲新的方法。這使得第一種方法更易於閱讀。

反轉if語句以減少嵌套可以使您的代碼更易於閱讀。

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

這可以去掉括號和1-2行。

如果方法變得太大,請將其重構爲更小的方法。

使方法和變量名稱自相矛盾。

1

使用描述性變量和函數名稱。

將大的函數分解爲子函數,以便將屬於一組的語句分組在一起,這可以很好地用於代碼重用。

儘量保持函數儘可能平坦,並將嵌套推入不同的函數,這樣每個嵌套層次都可以獲得自己的描述性函數名稱。

我儘量避免嵌套多個if和for在同一個函數中。 如果你有一個大的部分,嘗試重構的部分自己的功能。 這樣if會更容易理解,任何解釋都可以在真/假函數名稱中。

不要總是轉換爲linq,大的linq語句通常更難以閱讀,然後使用if結構和可能的變量讀取正常的循環。

對臨時數據使用變量而不是在語句周圍包裝語句。這既增強了可讀性,也爲您提供瞭解釋臨時變量的機會,並且使得調試更加容易,因爲該行將精確定位語句而不是集合或嵌套語句。

我從Prentice Hall那裏讀到一本關於它的名爲「Clean Code」的相當不錯的書,這本書深入到這裏。

相關問題