23Fermer25
ZephLe 16/05/2009 à 18:02
GoldenCrystal (./23) :
Plus exactement tu lui dis juste je veux une propriété "Length" avec un get et un set (oui sans un set elle te sert a rien cheeky ) et il crée en interne un champ associé (auquel tu ne peux pas accéder) + get/set par défaut qui font rien (ce qui ne t'empêche en rien d'en faire plus tard une vraie propriété si le besoin s'en ressent)

Heu... oui, pour le coup je vois toujours pas l'intérêt mais surtout je suis même pas sûr d'avoir compris ta phrase grin
Bah non ça encapsule quand même ton champ, et je te rappelle que tu peux avoir des modificateurs d'accès différents sur le get et le set, et que ta propriété n'a aucune obligation d'être publique, donc bah voilà quoi tongue

Ce que je veux dire c'est que si c'est juste pour dire "mon code est propre, tous mes attributs sont privés" et qu'à coté de ça t'as des propriétés auto-générées qui permettent d'y accéder directement, ça revient à avoir oublié "légèrement" ses cours de POO et l'intérêt même de l'encapsulation ^^
Bon, ok donc voilà la solution la plus polyvalente: tromb Fichier joint : FieldModifier.zipC'est tout bidon mais à l'heure actuelle je pense qu'on ne peut pas faire plus efficace (Il faut garder à l'esprit que tout ça fonctionne sans aucun bidouillage de mémoire et que tout est parfaitement géré par le Garbage Collector)

Okay, c'est pas si compliqué que ça finalement (par contre c'est ignoble, particulièrement la génération dynamique de méthodes, alors que le besoin à la base ne me semblait pas si tordu que ça... le C# n'est pas si puissant que ça en fait :/). Par contre je me demande un truc : par rapport à la solution de yAro qui consisterait à récupérer le FieldInfo et le modifier via ".SetValue", ça apporte quoi ? C'est plus rapide ? (parcequ'à l'initialisation du modifier vous faites exactement la même chose)