Es claro por qué propiedad de dependencia son estáticos y la cuestión aún permanecen en mi mente es ¿por qué tenemos que utilizar la palabra clave Sólo lectura en el momento de la declaración de propiedades de dependencia.¿Por qué las propiedades de Dependencia se declaran como estáticas de solo lectura?
Respuesta
Conceptualmente, una propiedad de dependencia es algo que un objeto de dependencia simplemente tiene y que no depende de cuándo se usa la propiedad. Al igual que una propiedad CLR, si se le pregunta qué este objeto tiene una propiedad Total
, usted sabe que no puede ser un double
ahora, pero una int
más tarde. Como resultado, haríamos la propiedad de dependencia const
si pudiéramos, pero no podemos, por lo que readonly
es la siguiente mejor opción.
El uso de la palabra clave readonly
tiene al menos tres efectos:
- se informa a los lectores del código que el valor no cambiará
- evita que el autor de la modificación accidental de un valor
- asiste a las compilador, que se beneficia de saber cuándo las cosas no cambiarán
sí, entendido. pero si declaro que no es solo de lectura, y quiero cambiar esta propiedad dinámicamente en tiempo de ejecución por alguna razón, ¿es posible? ¿o para este escenario hay mejores soluciones? – zinking
ya que hace más obvio, que el valor de esta propiedad no se puede cambiar después de la inicialización.
Esperamos que esto ayudaría: Silverlight.net forums: DependencyProperty - public static readonly?
Para citar:
El "sólo lectura estática pública" es el campo que regresa de la llamada Registro. El campo es el identificador de la propiedad. Solo necesita el identificador para que el sistema de propiedad de Silverlight sepa qué hacer, y para que pueda usar el sistema de propiedad usted mismo cuando defina el "contenedor" CLR de la propiedad de la dependencia. Una vez que tenga el envoltorio, todo el uso posterior de la propiedad puede usarlo como una propiedad típica.
Público para que todos los sistemas de establecimiento Llamadas incluidas a través del ensamblaje puede acceder a él.
estático y sólo lectura, porque esto no es una definición que nunca debe cambiar; el sistema de propiedad necesita obtener resultados consistentes.
En el caso propiedad adjunta, que quieren que haya una clase de "propietario". La clase propietaria debe ser la clase que llama RegisterAttached, Y también debe definir los métodos de acceso estático (Get * y Set *) para que el analizador XAML sepa qué hacer cuando intenta establecer la propiedad adjunta en una instancia de DependencyObject. Así que es un poco diferente, porque para una propiedad adjunta no suele haber un "contenedor", cualquier acceso al código solo usa los accesadores Get * y Set *.
- 1. ¿Por qué las propiedades de dependencia son "estáticas"?
- 2. ¿por qué las constantes de Java se declaran estáticas?
- 3. ¿Por qué las propiedades no pueden ser de solo lectura?
- 4. ¿Por qué declarar las clases Mapper y Reducer como estáticas?
- 5. ¿Por qué las propiedades de los tipos anónimos en C# son de solo lectura?
- 6. Declarando JAXB como una dependencia. ¿Por qué?
- 7. ¿Por qué las clases estáticas solo pueden tener miembros estáticos?
- 8. TwoWay MultiBinding con propiedades de solo lectura
- 9. WCF DataContract con propiedades de solo lectura
- 10. ¿Por qué las funciones de devolución de llamada deben ser estáticas cuando se declaran en la clase
- 11. Propiedades de solo lectura en EF 4.1
- 12. ¿Por qué Request.QueryString es solo de lectura?
- 13. propiedades de solo lectura en PHP?
- 14. ¿Por qué las uniones anónimas globales deben declararse como estáticas?
- 15. C#: ¿Por qué las mutaciones en las estructuras de solo lectura no se rompen?
- 16. Impulsar propiedades de GUI de solo lectura en ViewModel
- 17. Por qué se declaran variables de objeto con una estrella
- 18. Cuándo utilizar las Propiedades de dependencia
- 19. Propiedades estáticas en clases estáticas
- 20. ¿Por qué ASP.NET MVC se preocupa por mis propiedades de solo lectura durante el enlace de datos?
- 21. ¿Las propiedades estáticas autoejecutadas por C# son seguras para subprocesos?
- 22. ¿Por qué este campo se declara como privado y también de solo lectura?
- 23. Propiedades de dependencia
- 24. ¿Por qué Android prefiere las clases estáticas
- 25. ¿Por qué es mejor usar propiedades de solo lectura en lugar de funciones?
- 26. XML Documentación para las propiedades de dependencia
- 27. ¿Por qué las variables estáticas se autoinicializan a cero?
- 28. ¿Por qué las propiedades de colección de C# no se marcan como obsoletas cuando se llaman propiedades sobre ellas?
- 29. ¿Por qué los archivos aspx de código subyacente se declaran como clases parciales?
- 30. ¿Por qué se usan clases estáticas?
echa un vistazo a este http://stackoverflow.com/questions/2989431/why-dependency-properties-are-static –