2009-10-01 18 views
0

我總是傾向於將所有屬於依賴屬性(註冊,clr屬性,更改回調,強制回調等)的東西分組到一個區域中。但是這違反了Stylecop會員訂購規則。這也是生成多個成員的代碼片段的一個常見問題,因爲代碼片段不能在我的文件中的不同位置生成代碼。你在這方面的哲學是什麼?你是否違反了stylecop規則,或者你把所有東西都放在了「正確」的地方?StyleCop vs DependencyProperties

此外,我個人認爲,stylcop不應該抱怨這一點:

/// <summary> 
/// RepeatX Dependency Property 
/// </summary> 
public static readonly DependencyProperty RepeatXProperty = 
    DependencyProperty.Register(
     "RepeatX", 
     typeof(int), 
     typeof(GeometryViewbox), 
     new FrameworkPropertyMetadata 
      { 
       DefaultValue = 1, 
       AffectsRender = true, 
       AffectsParentMeasure = true, 
       PropertyChangedCallback = OnRepeatXChanged, 
       CoerceValueCallback = CoerceRepeatXValue 
      }); 

Stylcop應該產生爲我們做addtional工作。在上面的例子中,堅持使用stylcecop會讓你的工作效率下降,而且代碼的可讀性會下降,因爲你必須將上面的代碼放在靜態ctor中(而不是字段初始化)才能夠使FrameworkPropertyMetadata成爲臨時變量。每個依賴項屬性的一個額外的臨時變量不會使代碼更具可讀性/可維護性,再加上您不能再使用codesnippets。

回答

5

在上面的例子中堅持stylcecop讓你少生產 加上代碼變得更可讀

如果你真的相信,那麼就不要使用它。沒有人強迫你使用它,就像沒有人強迫你停止使用匈牙利符號一樣,如果你想。如果你是一個獨立的開發人員,沒有人會看到你的源代碼,然後格式化它讓你開心,但你必須維護它。如果你在一個更大的團隊中,那麼你應該得到一些編碼標準,這樣你就可以很容易地讀對方的代碼 - 但是如果你不想,你不必使用stylecop。

僅僅因爲有一個工具可用並不意味着它將滿足您的需求,您必須使用它。你可以爲自己思考。

+0

+1指出自由意志。 – 2009-10-02 08:51:37

+1

當然,我們不是被迫使用stylecp,但我認爲我們都同意它非常有用。特別是如果我們編寫公開的或許多團隊成員使用的代碼。只有一個或另一個規則應該略有不同。當然,我們可以禁用規則並編寫我們自己的規則。但是默認的規則是有目的的。他們可以被視爲最佳實踐的暗示。這就是爲什麼儘可能廣泛地應用它們是一個好主意。 – bitbonk 2009-10-02 09:47:48

+1

有些默認規則可以彌補微軟差異的不足。如果你使用不同的(不是雙關語),那麼你應該使用更新後的規則嗎?可能不會。 默認規則在那裏,因爲他們強制MS的內部風格。將Microsoft內部樣式註釋放在每個源文件的頂部是否是最佳實踐?不。他們並不都是最佳實踐提示。這是一個風格檢查器,僅此而已。這不是FXCop,那些肯定是最佳實踐規則。 – blowdart 2009-10-02 09:53:43

4

我們傾向於把所有東西都放在Stylecop的建議中。這樣就更簡單了。減少麻煩。如果你在所有情況下遵守規則,你總是知道在哪裏尋找東西。此外,您可以使用該下拉菜單直接跳至成員聲明。

FWIW,我們也從不使用區域。事情並沒有那麼混亂。

+0

+1 100%同意!以這種方式停止無休止的討論,或者這樣做。 – 2009-10-01 09:37:37

+0

+1按照它的說法,很快就會開始編寫類似cop的樣式代碼。 – 2009-10-01 09:42:59