Soy bastante nuevo en C#, y creo que las propiedades son maravillosas. Tan maravilloso, de hecho, que no puedo ver ninguna ventaja real en el uso de campos, en cambio. Incluso para los campos privados, parece que la flexibilidad y la modularidad que ofrecen las propiedades pueden, en el mejor de los casos, ahorrarle dolores de cabeza graves y, en el peor de los casos, no tener ningún efecto.¿Por qué utilizar campos en lugar de propiedades?
La única ventaja que puedo ver para los campos es que puede inicializarlos en línea. Pero la mayoría de las veces, desea inicializarlos en el constructor, de todos modos. Si no está utilizando la inicialización en línea, ¿hay alguna razón para no usar propiedades todo el tiempo?
Editar: Algunas personas han mencionado la necesidad de hacer una copia de seguridad de las propiedades con los campos (de forma explícita o automática). Deje que aclare mi pregunta: ¿Hay alguna razón para usar los campos excepto para hacer una copia de seguridad de las propiedades? Es decir, ¿hay algún momento en que SomeType someField;
sea preferible a SomeType SomeProperty { get; set; }
?
Editar 2: DanM, Skurmedel y Seth dieron respuestas realmente útiles. Acepté el de DanM, ya que es el más completo, pero si alguien resumiera sus respuestas en una sola respuesta, estaría encantado de aceptarlo.
duplicado de http://stackoverflow.com/questions/295104/what-is-the-difference-between-a-field-and-a-property- in-c – user73993
así que vamos a cerrarlo –
No, creo que esta es una pregunta excelente, que también es muy sutil. Definitivamente diferente. –