为什么依赖属性是静态的,这个问题仍然在我心中很清楚,我就是为什么我们需要使用只读关键字属地财产申报的时间。为什么依赖属性被声明为静态只读?
回答
从概念上讲,依赖项属性是依赖项对象只是具有的内容,而不依赖于何时使用该属性。就像一个CLR属性,如果你问这是否对象有Total
属性,你就知道它不能是现在double
而是int
以后。因此,如果可以的话,我们将依赖项属性const
,但我们不能,所以readonly
是次好的。
使用readonly
关键字至少有三个作用:
- 它通知码的读者,价值不会改变
- 它可以防止笔者意外更改
- 它协助价值编译器,它知道什么时候事情不会改变
是的,理解。但是如果我声明它不是只读的,并且出于某种原因我想在运行时动态地更改此属性,那么可能吗?或者对于这种情况有更好的解决方案? – zinking 2013-06-21 10:27:18
因为它使明显,这个属性的值初始化后不能更改。
希望这将有助于:Silverlight.net forums: DependencyProperty - public static readonly?
引述:
“公共静态只读”是来自注册回调领域。该字段是属性的标识符。你只需要标识符,这样Silverlight属性系统就知道该怎么做,并且可以在定义依赖属性的CLR“包装器”时自己使用属性系统。一旦你有了包装,该物业的所有进一步使用可以像典型的财产一样使用它。
公共使所有财产的系统调用,包括跨组件能够访问它。
静态和只读的,因为这不是应该永远改变的定义;房产系统需要获得一致的结果。
在附加属性的情况下,你想有是一个“老板”级。所有者类必须是调用RegisterAttached的类,并且还必须定义静态访问器方法(Get *和Set *),以便当您尝试在DependencyObject实例上设置附加属性时,XAML分析器知道该做什么。所以它有点不同,因为对于附加属性,通常不是“包装”,任何代码访问都只使用Get *和Set *访问器。
- 1. 为什么依赖属性?
- 2. 为什么依赖属性必须是静态
- 3. 为什么依赖属性是“静态的”?
- 4. 为什么WebMethod声明为静态?
- 5. 为什么只有静态字段可以声明为'const'?
- 6. 为什么.NET委托不能被声明为静态?
- 7. 声明不能被标记为“静态”,为什么
- 8. 为什么私有静态属性为
- 9. 将JAXB声明为依赖项。为什么?
- 10. createOperate方法不能被声明为静态;静态方法只能在静态或顶级类型中声明
- 11. 无法重新声明非静态PHPUnit_Framework_TestCase :: $依赖关系为静态SapphireTest :: $依赖关系
- 12. 非静态依赖项属性
- 13. 为什么在属性声明中只使用setter?
- 14. 为什么我的'ReplaceContent'属性没有被声明?
- 15. 为什么GeoCoordinateWatcher的DesiredAccuracy属性只读?
- 16. 为什么Console.Console.Out&Console.Error属性只读?
- 17. 为什么property.fget是只读属性?
- 18. 目标属性必须是依赖属性 - 为什么?
- 19. 为什么声明的属性同时使用保留和只读?
- 20. 什么是使用ARC为ios声明只读属性的正确方法
- 21. 声明静态变量时的输出是什么?为什么?
- 22. 为什么main不被声明为extern
- 23. 为什么WebFrameLoadDelegate被视为未声明?
- 24. WPF:如何使基类的依赖项属性为只读
- 25. 为什么变量应声明为静态和最终
- 26. 为什么jsp中的EL函数必须声明为静态?
- 27. 为什么我的登录方法声明为静态?
- 28. 为什么不能将Java类声明为静态?
- 29. 为什么java常量声明为静态?
- 30. 为什么前向声明不能修复循环依赖?
只是看看这个http://stackoverflow.com/questions/2989431/why-dependency-properties-are-static – 2011-04-11 04:09:46