我总是倾向于将所有属于依赖属性(注册、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 转换为临时变量。每个依赖属性的一个额外临时变量不会使代码更具可读性/可维护性,而且您不能再使用代码片段。