En primer lugar, he leído una lista de publicaciones sobre este tema y no creo haber captado las propiedades debido a lo que había llegado a comprender sobre encapsulamiento y modificadores de campo (privado, público ... ver).Propiedades vs. Campos: Necesito ayuda para comprender los usos de las propiedades en los campos
Uno de los principales aspectos de C# que he aprendido es la importancia de la protección de datos dentro de su código mediante el uso de encapsulación. Pensé que lo entendía por la capacidad del uso de los modificadores (privado, público, interno, protegido). Sin embargo, después de conocer las propiedades, estoy algo desgarrado al comprender no solo las propiedades, sino también la importancia/capacidad general de la protección de datos (lo que entendí como encapsulación) dentro de C#.
Para ser más específicos, todo lo que he leído cuando llegué a las propiedades en C# es que usted debe tratar de utilizarlos en lugar de campos cuando se puede debido a:
1) que le permitirá cambie el tipo de datos cuando no pueda cuando acceda directamente al campo directamente.
2) Añaden un nivel de protección de acceso a datos
Sin embargo, por lo que 'pensé' yo había llegado a saber sobre el uso de modificadores de campo hizo # 2, me parecía que las propiedades acaba de generar código adicional a menos que tenga alguna razón para cambiar el tipo (# 1) - porque está (más o menos) creando métodos ocultos para acceder a los campos en lugar de directamente.
Luego están los modificadores completos que se pueden agregar a Propiedades, lo que complica aún más mi comprensión de la necesidad de propiedades para acceder a los datos.
He leído varios capítulos de diferentes escritores sobre "propiedades" y ninguno ha explicado realmente una buena comprensión de las propiedades frente a los campos frente a la encapsulación (y buenos métodos de programación).
¿Puede alguien explicar:
1) razón por la que me gustaría utilizar las propiedades en lugar de campos (especialmente cuando aparece sólo estoy agregando código adicional
2) algún consejo sobre reconocer el uso de propiedades y no verlas como simples métodos (con la excepción de que el conjunto get sea aparente) al rastrear el código de otras personas?
3) ¿Alguna regla general acerca de cuándo usar buenos métodos de programación?
Gracias y disculpas por la larga publicación: no quería hacer una pregunta que se me ha formulado 100 veces sin explicar por qué la vuelvo a formular.
¿Duplicado? http://stackoverflow.com/questions/2911945/method-calling-public-private-members-or-methods-best-practice-c-net/ –
Parece que nadie está vinculado a [Why Properties Matter] (http://csharpindepth.com/Articles/Chapter8/PropertiesMatter.aspx) todavía. En el pasado, encontré esa visión general bastante útil. – R0MANARMY