un código de ejemplo de lo que trato de hacer seguramente hacer algo mejor que mi Inglés:MethodInfo.Invoke con Parámetro fuera
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;
}
Desafortunadamente el método TryParse necesita un parámetro de salida por lo que esto no funciona. alguna idea de cómo resolver esto?
(ps .: would'nt este será un buen ejemplo para la tipificación de pato - porque sé que cada numericType tiene un "TryParse" o me equivoco?)
Usted debe ser capaz de analizar cualquier tipo numérico a doble, por lo que double.TryParse() debería hacerlo aquí? –
Para las personas que vienen aquí en el futuro: @Lars, no todos los números se pueden analizar para doblar sin perder precisión, 'decimal' en particular es el peor infractor aquí. – Crisfole
.NET Framework tiene funcionalidad incorporada para las conversiones de tipo IConvertible: [TypeConverter] (https://msdn.microsoft.com/en-us/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/es-us/library/system.convert.changetype (v = vs.110) .aspx), [Comparación] (https://stackoverflow.com/questions/7010669/typeconverter-vs-convert-vs -targettype-parse) – Almis