Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1481 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Comment faire une méthode avec un paramètre générique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] Comment faire une méthode avec un paramètre générique

n°2157665
bird80
Posté le 21-09-2012 à 15:28:23  profilanswer
 

Bonjour,
 
Je cherche le moyen de simplifier mon code, à l'heure actuelle j'ai le code suivant :
 

Code :
  1. methodeExport1(DataTableA pDataTable, Dictionary<string,string> pMyData) {
  2.  
  3.   foreach(var row in pDataTable) {
  4.     ...
  5.   }
  6. }
  7. methodeExport2(DataTableB pDataTable, Dictionary<string,string> pMyData) {
  8.   foreach(var row in pDataTable) {
  9.     ...
  10.   }
  11. }
  12. ...
  13. methodeExportN(DataTableZ pDataTable, Dictionary<string,string> pMyData) {
  14.   foreach(var row in pDataTable) {
  15.     ...
  16.   }
  17. }


 
 
Je recherche le moyen de faire une méthode générique unique
 

Code :
  1. methodeExport(TypeGeneric pDataTable, Dictionary<string,string> pMyData) {
  2.   foreach(var row in pDataTable) {
  3.     ...
  4.   }
  5. }


 
J'ai l'impression que je m'y prends mal mais ca doit pouvoir se faire ?
 
Merci d'avance


Message édité par bird80 le 21-09-2012 à 15:28:44
mood
Publicité
Posté le 21-09-2012 à 15:28:23  profilanswer
 

n°2157681
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-09-2012 à 16:22:02  profilanswer
 

Tes DataTableA, DataTableB et DataTableZ héritent de DataTable ?
 
Si oui, alors tu peux écrire

Code :
  1. methodeExport(DataTable pDataTable, Dictionary<string,string> pMyData)
  2. {
  3.   foreach(var row in pDataTable)
  4.   {
  5.      ...
  6.   }
  7. }


---------------
J'ai un string dans l'array (Paris Hilton)
n°2157939
bird80
Posté le 24-09-2012 à 17:37:53  profilanswer
 

Harkonnen a écrit :

Tes DataTableA, DataTableB et DataTableZ héritent de DataTable ?
 
Si oui, alors tu peux écrire

Code :
  1. methodeExport(DataTable pDataTable, Dictionary<string,string> pMyData)
  2. {
  3.   foreach(var row in pDataTable)
  4.   {
  5.      ...
  6.   }
  7. }



 
La réponse est oui sauf que je butte sur le fait que DataTable de possède pas de méthode GetEnumerator(), donc n'est pas utilisable dans une boucle foreach

n°2157944
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-09-2012 à 19:13:53  profilanswer
 

Au temps pour moi, j'ai oublié de préciser que si tu utilises la version 3.5 ou supérieure de .NET, tu peux utiliser la méthode d'extension AsEnumerable() de DataTable, qui te renverra un objet de type IEnumerable<DataRow>, te permettant ainsi d'itérer sur ta DataTable comme n'importe quel IEnumerable :
 

Code :
  1. foreach (var row in pDataTable.AsEnumerable())
  2. {
  3.   ...
  4. }


---------------
J'ai un string dans l'array (Paris Hilton)
n°2157948
bird80
Posté le 24-09-2012 à 19:48:50  profilanswer
 

Dsl, on ne peut pas dire que j'ai été curieux  ... :)
 
Merci je teste ça demain et te tiens au courant

n°2157996
bird80
Posté le 25-09-2012 à 10:09:09  profilanswer
 

Un gros merci à toi Harkonnen

n°2158107
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-09-2012 à 17:10:21  profilanswer
 

You're welcome ;)


---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Comment faire une méthode avec un paramètre générique

 

Sujets relatifs
fstream / Modifier une valeur spécifique dans un fichier C++[Microsoft][C] convertir un char* en PCWSTR
Erreur de Link (Visual C++ 2005)[C#] Expression régulières
Visual C++ 2010 - Lancer un batch dos depuis un bouton(Cplex & C++) Comment résupérer les variables de base ?
Communication TCP Matlab-C++[C / C++] Lire informations disque dur
int16_t[400] et char[400] xor en C[C][reseau] connection tcp (3 voies) raw socket
Plus de sujets relatifs à : [C#] Comment faire une méthode avec un paramètre générique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR