回答

7

你可以/應提供有關的建議:

  • 何時使用查詢表達式VS點符號
  • 上使用Lambda表達式(如「不修改捕獲變量)的任何限制(這也可以應用於匿名方法當然是C#2)
  • 當寫擴展方法
  • 當使用隱式類型變量(var

其中最後兩個引起一些爭議,特別是var

如果你的約定給出了任何設計指導方針,我建議你還建議程序員考慮使用委託進行專門化,以前他們可能使用過繼承或接口。一個很好的例子就是排序 - 使用投影來指定排序順序比編寫實現IComparer<T>更容易(也更易讀)。

2

updgrade與一個新項目相吻合,所以當我們移動時,我們開始使用像StyleCop和FxCop這樣的工具來改變我們的編碼標準。而且它也可以輕鬆地強制執行它們:o)

1

由於升級,任何內容都不應該改變,儘管您可能需要查看有關新功能(如LINQ表達式,佈局,Lambda與查詢語法)的編碼標準。

0

我的標準的新功能,2008:

  • 使用VAR謹慎只與匿名類型。
  • 鼓勵對代表使用lambda表達式。
  • 只有使用擴展方法,當你沒有源代碼
1

的控制我個人的忌諱是var地方「可能」的使用。只要

var obj1 = new Something(); 
var obj2 = (Something)ObscureFunction(); 
var obj3 = ObscureStuff() as Something; 

把守,我不在乎:

「可能」被當前定義爲下列情形之一的,大多是在遞減整潔順序:

明顯,幫助DRY它編譯:

var obj4 = ObscureFunction(); 
foreach(Something s in obj4) { ... } 

複雜泛型和幾乎任何LINQ結果:

var obj5 = ctx.GetQuery<Something>()..ToList(..)..GroupJoin(..)...ToLookup(...); 
相關問題