我們正在將我們的項目從C#2.0/VS2005升級到C#3.0/VS2008。作爲升級的一部分,我們正在將一些項目添加到我們的編碼標準文檔中。當您升級到C#3.0/VS2008時,您的編碼標準文檔如何更改?
從C#2.0/VS2005升級到C#3.0/VS2008時,您會(或不是)更改您的編碼標準文檔?
我們正在將我們的項目從C#2.0/VS2005升級到C#3.0/VS2008。作爲升級的一部分,我們正在將一些項目添加到我們的編碼標準文檔中。當您升級到C#3.0/VS2008時,您的編碼標準文檔如何更改?
從C#2.0/VS2005升級到C#3.0/VS2008時,您會(或不是)更改您的編碼標準文檔?
你可以/應提供有關的建議:
var
)其中最後兩個引起一些爭議,特別是var
。
如果你的約定給出了任何設計指導方針,我建議你還建議程序員考慮使用委託進行專門化,以前他們可能使用過繼承或接口。一個很好的例子就是排序 - 使用投影來指定排序順序比編寫實現IComparer<T>
更容易(也更易讀)。
updgrade與一個新項目相吻合,所以當我們移動時,我們開始使用像StyleCop和FxCop這樣的工具來改變我們的編碼標準。而且它也可以輕鬆地強制執行它們:o)
由於升級,任何內容都不應該改變,儘管您可能需要查看有關新功能(如LINQ表達式,佈局,Lambda與查詢語法)的編碼標準。
我的標準的新功能,2008:
的控制我個人的忌諱是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(...);