0

我总是倾向于将所有属于依赖属性(注册、clr 属性、更改回调、强制回调等)的东西分组到一个区域中。但这违反了 stylecop 成员排序规则。这也是生成多个成员的代码片段的普遍问题,因为片段无法在我的文件中的不同位置生成代码。你的哲学是什么?您是取消 stylecop 规则还是将所有内容都放在“正确”的位置?

另外我个人认为 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 应该为我们提供额外的工作。在上面的示例中,坚持使用 stylcecop 会使您的工作效率降低,而且代码的可读性也会降低,因为您被迫将上面的代码放在静态 ctor(而不是字段初始化)中,以便能够将 FrameworkPropertyMetadata 转换为临时变量。每个依赖属性的一个额外临时变量不会使代码更具可读性/可维护性,而且您不能再使用代码片段。

4

2 回答 2

5

在上面的示例中,坚持使用 stylcecop 会降低工作效率,而且代码的可读性也会降低

如果你真的相信,那就不要使用它。没有人强迫你使用它,就像没有人强迫你停止使用匈牙利符号一样。如果你是一个孤独的开发者并且没有人会看到你的源代码然后格式化它让你开心,那么你就是必须维护它的人。如果您在一个更大的团队中,那么您应该制定一些编码标准,以便您可以轻松地阅读彼此的代码 - 但如果您不想这样做,则不必为此使用 stylecop。

仅仅因为一个工具可用并不意味着它会满足您的需求并且您必须使用它。你可以自己思考。

于 2009-10-02T07:51:34.847 回答
4

我们倾向于按照 Stylecop 的建议放置所有内容。这样更容易。少麻烦。如果你在所有情况下都遵守规则,你总是知道去哪里找东西。此外,您可以使用该下拉菜单直接跳转到成员声明。

FWIW,我们也从不使用区域。这样,事情就不那么混乱了。

于 2009-10-01T09:29:09.930 回答