Bonjour.
Je me pose une question existentielle, en C# (comme en d'autres langages d'ailleurs) sur les accesseurs Set/Get et les propriétés.
Lorsque, dans une classe, nous voulons protéger un membre, nous le définissons en private et déclarons un accesseur Get (ou une propriété n'ayant qu'un accès Get) pour récupérer sa valeur depuis une autre classe.
Ma question est la suivante :
je comprends tout à fait ce principe pour des variables de type valeur, car l'élément retourné via la méthode Get ne pourra en aucun cas affecter la variable private associée, quel que soit l'utilisation qui en est fait dans le code qui l'exploite.
Par contre pour des variables de type valeur j'ai beaucoup plus de mal à comprendre en quoi cela sécurise l'application. Je m'explique : dans une classe si je définie un membre privé, de type DataRow par exemple, puis un acesseur Get permettant de récupérer sa valeur, il suffit au code appellant d'appeller ce Get pour obtenir une référence sur ce Datarow et de faire un dispose dessus pour affecter également l'état du membre privé que le Get est censé protégé.
Qu'en pensez-vous ?
Je trouve que du coup l'utilisation de Get/Set ou la définition de propriétés pour des membres de types références n'apporte pas grand chose au niveau de la sécurisation du code.
Etes vous de mon avis ?
Partager