Hay muchos consejos que indican que no debe exponer públicamente sus campos y, en su lugar, usar propiedades triviales. Lo veo más de & más.¿Alguna vez ha salvado su tocino de propiedades triviales?
Entiendo los argumentos, pero I don't think it's good advice in most cases.
¿Alguien tiene un ejemplo de una época en la que realmente importaba? Cuando escribir una propiedad trivial hizo posible algo importante en el futuro (o cuando dejar de usar uno los metió en problemas reales)?
EDIT: El argumento DataBinding es correcto, pero no muy interesante. Es un error en el código de enlace de datos que no aceptará campos públicos. Entonces, tenemos que escribir propiedades para evitar ese error, no porque las propiedades sean una opción de diseño de clase inteligente.
EDITAR: Para ser claros, estoy buscando ejemplos del mundo real, no teoría. Un momento en que realmente importaba.
EDITAR: La capacidad de establecer un punto de interrupción en el colocador parece valiosa. Diseñar mi código para el depurador es desafortunado: prefiero que el depurador se vuelva más inteligente, pero dado el depurador que tenemos, tomaré esta habilidad. Buen material.
en tu comentario a @JasonBunting te lamentas por los tipos inmutables y de solo lectura. Tengo curiosidad por qué no puede lograr esto con MyProperty {get; conjunto privado; }? –
@Robert: Porque no obtengo la verificación gratuita de que mi implementación no está modificando el estado. –
Si no confía en usted mismo, use un campo de respaldo y escriba pruebas unitarias. nombre de cadena privada de solo lectura; public string Nombre {get {return name; }} 'propiedad o indizador' ... No se puede asignar el nombre '- es de solo lectura –