C'est ce que j'ai obtenu dans un projet comprenant des cas de réflexion assez complexes :
static int PopulateValues<T>(List<string> propertyNames, ref T list) { /*...*/ }
// Example call:
PopulateValues(propertyNames, ref list1);
J'aimerais vraiment ajouter params
et faire params ref T[] lists
pour en autoriser l'utilisation :
PopulateValues(propertyNames, ref list1, ref list2, ...);
Cependant, j'obtiens l'erreur suivante :
Un paramètre ne peut pas avoir à la fois les modificateurs "params" et "ref".
J'ai d'abord pensé à laisser list
soit un object[]
mais l'utilisation serait laide (casting object
). Pour l'instant, j'appelle la méthode une fois pour chaque type, ce qui évite de multiplier les énumérations.
SOLVED : Je n'ai pas besoin ref
pour appeler les méthodes de réflexion sur la classe de paramètres ( SetValue
, GetValue
, InvokeMember
etc.), ce qui signifie que je peux sauter l'étape des ref
tout à fait. Vraiment, j'aurais dû essayer.