Bonjour, j'espère ne pas me planter en décrivant mon problème.
J'ai créé une classe qui contient un block GetEnumerator. C'est une classe qui ne contient aucune méthode, que des paramètres si je ne me plante pas sur le vocabulaire (get set)
Elle fonctionne très bien à la base.
Je m'en sers pour faire une requête paramétrée et quand je lance ma méthode avec cette classe, tout fonctionne bien public int insertP(Maclasse j){ foreach(machine m in j { ...}}
Je voulais que cette requete accepte une autre classe qui ait aussi un GetEnumerator de sorte que ma méthode qui fait ma requête paramétrée tourne avec. Donc je me suis dit pourquoi ne pas passer la méthode comme générique. Et là au niveau de la boucle ça ne passe pas du tout. "L'instruction foreach ne peut pas fonctionner sur des variables de type 'T'. Car 'T' ne contient pas dde définition publique pour 'GetEnumerator'.
Je pense donc qu'étant donner qu'en passant en générique je ne limite pas ce qu'on peut mettre, ou bien que je ne récupère pas le type en cours de route (et je ne vois pas bien comment faire, un cast me parait impossible, mais surtout l'idée c'est d'automatiser au plus possible et que ça soit polyvalent sans réécrire du code à chaque fois que je crée une nouvelle classe (personne, animal, etc) ) .
Donc là je sèche pas mal. J'ai rajouté une condition encapsulant le foreach, if(j is IEnumerator){ } mais le compilateur s'en moque royalement.
Partager