olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
8 févr. 2008 à 10:04
olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 2010
-
8 févr. 2008 à 21:08
Bonjour
je suis débutant en C# et j'essaye de trouver les meilleures methode pour effectuer certaines taches
1- J'effectue un query mysql qui me remplit un dataset
2- je charge un datagrid en utilisant comme datasource dataset.table[0]
A ce moment si j'ai bien capté j'ai le resultat de mon query deux fois qq part en memoire 1 fois dans dataset une fois dans le datagridview
je voudrais appeller une fonction qui doit parcourir et utiliser sans le modifier le contenu de cette table
la table contient +/- 3000 rows
chaque row contient 15 items
dans la fonction, trois de ces items m'intéressent
que vaut-il mieux passer a la fonction (qui doit avoir visibilité de ces trois items pout l'ensemble des rows)
1- le dataset
2- le datagridview
3- autre chose ?
Kleidp
Messages postés124Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention10 février 2008 8 févr. 2008 à 13:05
Passe directement le dataSet. De toute manière tu va passer un pointeur à ta fonction (C'est 'transparent' en C#), c'est pas comme si un deuxieme dataSet allait être créé en mémoire.
bidou_01
Messages postés134Date d'inscriptiondimanche 1 octobre 2006StatutMembreDernière intervention19 mai 20081 8 févr. 2008 à 19:51
Hello,
Si la fonction est dans ta classe tu peux imaginer mettre ton DataSet en variable de classe (ie pas déclaré dans une méthode).
Comme ça tu n'a même pas à passer quoi que se soit en paramètre.
Sinon comme Kleidp l'a dit, le passage par référence est transparent en C# !
Une classe est ce que l'on appel un type référence, c'est-à-dire que lorsque tu manipule des classes entre elle, tu ne vas pas récupérer l'objet lui même, mais l'adresse mémoire (référence) qui pointe cet objet. (en gros)
Comme tu débutes en C#, il est important de bien comprendre ce mécanisme, donc si ce n'est pas fait, je te conseil cet article
olibara
Messages postés666Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 mars 20106 8 févr. 2008 à 21:08
Merci Bidou
Je débute en C# mais j'ai quelques années de vol en C natif
Donc j'ai pris certaines habitudes comme essayer de proscrire l'usage de déclaration publique et de passer l'information via des pointeurs de structures container, ancetres des classes et objets.
Cela etant les seules vrai règles que j'essaye de suivre sont
- lisibilité du code
- performance
- eviter de de trimbaler les datas partout (en C je suis un accro des pointeurs)
En C# j'essaye de prendre des bonnes habitudes des le debut.