为什么以这种方式创建 DependencyProperty 成员:
public static readonly DependencyProperty DepProperty = DependencyProperty.Register(...);
而不是那样:
protected static readonly DependencyProperty DepProp = DependencyProperty.Register(...);
当我们拥有 CLR“包装器”时,为什么我们需要从外部使用 DevProp 成员:
public bool Dep
{
get { return (bool)GetValue(DepProperty); }
set { SetValue(DepProperty, value); }
}
根据 MSDN,限制性访问修饰符实际上并不提供某些 API 的预期访问保护,因此声明依赖属性及其标识符字段除了public
:
依赖属性安全注意事项
依赖属性应声明为公共属性。依赖属性标识符字段应声明为公共静态字段。即使您尝试声明其他访问级别(例如 protected),也始终可以通过标识符结合属性系统 API 来访问依赖属性。由于元数据报告或值确定 API 是属性系统的一部分,因此即使受保护的标识符字段也可能被访问,例如本地值枚举器。有关更多信息,请参阅依赖财产安全.
将它们暴露为没有任何害处public
无论如何,我会聚集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)