为什么Dependency属性被声明为静态只读?

pch*_*jer 10 wpf dependency-properties

我很清楚为什么依赖属性是静态的,问题仍然存在于我的脑海中,这就是为什么我们需要在声明依赖属性时使用Readonly关键字.

Ric*_*key 4

从概念上讲,依赖属性是依赖对象仅具有的东西,并且在使用该属性时不依赖于该属性。就像 CLR 属性一样,如果你问这个对象是否有属性Total,你就知道它不可能是double现在,而是int以后。因此,const如果可以的话,我们会创建依赖属性,但我们不能,所以readonly是下一个最好的事情。

使用readonly关键字至少有三个效果:

  • 它告诉代码的读者该值不会改变
  • 它可以防止作者意外更改该值
  • 它可以帮助编译器,编译器可以从知道什么时候事情不会改变中受益