¿Debo usar propiedades públicas y campos privados o campos públicos para datos?
En gran parte del código que he visto (en SO, thecodeproject.com y tiendo a hacer esto en mi propio código), he visto que se crean propiedades públicas para cada campo privado que contiene una clase, incluso si son las más importantes. tipo básico deget; set;
me gusta:
private int myInt;
public int MyInt
{
get { return myInt; }
set { myInt = value }
}
Mi pregunta es: ¿en qué se diferencia esto de:
public int MyInt;
y si deberíamos usar propiedades en lugar de campos públicos, ¿por qué deberíamos usarlas en este caso específico? (No estoy hablando de ejemplos más complejos en los que los captadores y definidores realmente hacen algo especial o solo hay un conjunto o lectura (solo lectura / escritura) en lugar de simplemente devolver / establecer el valor de un campo privado). Parece que no agrega encapsulación adicional, solo da un bonito icono en IntelliSense y se coloca en una sección especial en los diagramas de clase.