我总是倾向于将所有属于依赖属性的东西(注册、clr属性、更改回调、强制回调等)分组到一个区域中。但这违反了StyleCop成员排序规则。这也是生成多个成员的代码段的一般问题,因为代码段不能在我的文件中的不同位置生成代码。你在这方面的哲学是什么?你是取消了样式警察的规则,还是把一切都放在“正确”的地方?
另外,我个人认为,史蒂尔科不应该抱怨这一点:
/// <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
});
Stylop应该为我们生成额外的工作。在上面的示例中,坚持使用stylecop会降低工作效率,而且代码的可读性也会降低,因为您必须将上述代码放入静态ctor(而不是字段初始化),以便能够将frameworkpropertiesmetadata转换为临时变量。每个依赖属性都有一个额外的临时变量,这不会使代码更易于阅读/维护,而且您不能再使用代码段了。