INDIRECTION SUR LES MEMBRES D'UNE CLASSE EN VB.NET OU C#, INDIRECTION ON CLASS M

Signaler
Messages postés
97
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
3 septembre 2010
-
Messages postés
15617
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2021
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50710-indirection-sur-les-membres-d-une-classe-en-vb-net-ou-c-indirection-on-class-members-in-vb-net-or-c

Bon Gabsoftware,

Tout d'abord merci pour tes explications cela va m'être fort utile.
Existe t'il par hasard le principe d'indirection concernant les membres d'une structure.

J'ai essayé de transposé ton code, mais les membres de ma structure ne sont pas affectés.
Messages postés
15617
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
25 février 2021
516 > SIVSAW
Bonjour comme l’a fait remarquer Charles Récaud, en .Net on parle de Réflection et pas d’indirection. Je ne me suis jamais posé la question si la reflection marche avec une structure, mais en cherchant vite fait, j’ai vu des sujets résolus sur le net. Donc ça devrait.
Cependant l’usage des structures est déconseillé. La principale raison d'être est la compatibilité avec des dll codés dans un langage plus anciens.
Côté inconvénients
-C’est un type valeur, donc ça consomme de la mémoire inutilement à chaque passage en paramètres.
-Ça n’encapsule pas les variables.
-Y’a pas d’héritage.
-On ne peut pas faire de binding.
-Evidement, pas de méthode ni événement.

Bref c’est pas un objet, .Net est un langage objet. Utiliser une structure c’est aller à l’encotre du principe du lanage et du coup passer à côté de tous les points forts.
Messages postés
127
Date d'inscription
lundi 11 octobre 2004
Statut
Membre
Dernière intervention
18 mai 2016

Oui Bouv, et j'ai beau relire, je ne trouve pas la réponse à ma question (la dernière, pas la première)... Peut-être parce que je ne maîtrise pas du tout ce sujet.

Par contre, le dernier commentaire de hier soir de Charles Racaud, là, je comprends l'avantage maintenant, quand on a des membres non ordonnées. Il y en a peut-être d'autres...
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Il est vrai que si c'est pour faire des membres indexés de 0 à n (ou tous les membres sont utilisées), il vaut mieux un tableau d'object. Un object est la base de tout type, donc il n'y a pas d'inconvénient ni de perte de mémoire.
Je vois plutôt l'utilité ici pour récupéré des index non ordonnées. Juste des membre dont les index ne sont pas ordonnées (4, 6, 897, 7, 9876...) ou encore mettre un Id à la place d'un index. Mais la aussi, on peut remplacer par un Dictionary.
Il est vrai que utiliser la Reflection n'est pas trop conseiller ici si c'est pour utiliser dans un même projet. Mieux vaut utiliser les différents outils du framework, list, dictionary, ...
Source à utiliser pour de bonnes raisons.
__
Kenji
Afficher les 15 commentaires