juin
2007
On m’a posé la question suivante aujourd’hui :
Quel est l’intérêt des automatic properties ?
J’ai commencé à expliquer qu’on limitait ainsi la taille du code, on gagnait en lisibilité en supprimant du code qu’on est capable de faire générer par Visual Studio (quand on utilise le Refactoring).
Et là la personne m’a interrompu pour me dire :
Ok mais plutôt que de faire
public string Toto { get; set; }
pourquoi on ne fait pas tout simplement
public string Toto;
Puisqu’on ne fait que renvoyer et affecter un field via la propriété pourquoi utiliser une propriété ?
Ma réponse a été la suivante :
Avec une propriété, on peut limiter la visibilité d’une des deux opérations :
public string Toto { get; private set;}
D’autre part, dans le cas du binding, on a besoin d’un PropertyDescriptor. Alors bien sûr on peut en rajouter nous même avec l’interface IListSource ou ICustomTypeDescriptor mais ça devient ridicule dans ce cas là.
Si quelqu’un voit d’autre raisons n’hésitez pas à me le faire savoir.