j'invoque une méthode statique Parse sur un type par réflexion parce que je ne connais pas le type de l'objet à la compilation (je ne sais, cependant, il a une méthode Parse , en prenant une chaîne).éviter une exception match ambiguë
Cependant, j'obtiens une exception de correspondance ambiguë, probablement parce qu'il y a beaucoup de méthodes Parse surchargées prenant chacune un seul objet (chaîne, int, double etc.).
Comment est-ce que je peux être plus spécifique dans mon invocation de méthode pour m'assurer que j'atteins la bonne méthode (Parse (string s)) et l'exception n'est pas levée.
Mon code ressemble à ceci:
Type returnType = p.PropertyType;
object value = returnType.GetMethod("Parse").Invoke(null, new string[] { "1" });
@Bitterblue Je suis confus pourquoi vous écrivez ce commentaire - et pourquoi vous considérez les questions de style à discuter? –
La présentation est bien, il arrive juste de suivre un style différent de celui que vous semblez préférer. Vous avez commenté comme suit: «J'utiliserais ce hangar à vélos, s'il était un peu plus bleuâtre». Ce qui me déroute. Editer le commentaire: A moins que vous n'ayez pas conscience que new [] {} infère le type de Array et _IS_ équivalent à new Type [] dans ce cas? Dans ce cas, je suis désolé - j'ai supposé que vous commentez sur le style (les deux travaux) tout en pensant potentiellement que l'extrait est faux (ce n'est pas le cas). –
Merci pour la réponse, les gars. Pour enregistrer le problème suivant, pour les types de référence, utilisez quelque chose comme ceci: typeof (chaîne) .MakeByRefType(); – BRebey