un code d'exemple ce que j'essaie de faire va sûrement faire mieux que mon anglais:MethodInfo.Invoke avec paramètre sur
public bool IsNumericValueInBounds (string value, Type numericType)
{
double d = double.NaN;
bool inBounds = (bool)numericType.GetMethod ("TryParse").Invoke (null, new object[] { value, d });
return inBounds;
}
Malheureusement, la méthode TryParse a besoin d'un paramètre de telle sorte que cela ne fonctionne pas. des idées pour résoudre ce problème?
(ps .: would'nt ce un bon exemple pour le typage de canard - parce que je sais que chaque numericType a un « TryParse » ou je me trompe?)
Vous devriez être capable d'analyser tout type numérique à doubler, donc double.TryParse() devrait le faire ici? –
Pour les gens qui viennent ici dans le futur: @Lars, tous les chiffres ne peuvent pas être doublés sans doubler sans perdre de précision, le "décimal" en particulier est le pire délinquant ici. – Crisfole
.NET Framework dispose d'une fonctionnalité intégrée pour les conversions de type IConvertible: [TypeConverter] (https://msdn.microsoft.com/fr-fr/library/system.componentmodel.typeconverter (v = vs.110) .aspx) , [GetConverter] (https://msdn.microsoft.com/en-us/library/system.componentmodel.typedescriptor.getconverter (v = vs.110) .aspx), [Convert.ChangeType] (https: // msdn .microsoft.com/fr-fr/library/system.convert.changetype (v = vs.110) .aspx), [Comparaison] (https://stackoverflow.com/questions/7010669/typeconverter-vs-convert-vs -targettype-parse) – Almis