un codice di esempio quello che cerco di fare sarà sicuramente fare di meglio il mio inglese:MethodInfo.Invoke con Parametro fuori
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;
}
Purtroppo il metodo TryParse ha bisogno di un parametro out quindi questo non funziona. qualche idea su come risolvere questo?
(ps .: would'nt questo sia un ottimo esempio per la digitazione di anatra -? Perché so ogni numericType ha un "TryParse" o mi sbaglio?)
si dovrebbe essere in grado di analizzare qualsiasi tipo numerico da raddoppiare, quindi double.TryParse() dovrebbe farlo qui? –
Per le persone che vengono qui in futuro: @Lars, non tutti i numeri numerici possono essere analizzati per raddoppiare senza perdere la precisione, in particolare il "decimale" è il peggiore trasgressore. – Crisfole
.NET Framework ha funzionalità incorporate per conversioni di 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/it-it/library/system.convert.changetype (v = vs.110) .aspx), [Confronto] (https://stackoverflow.com/questions/7010669/typeconverter-vs-convert-vs -targettype-parse) – Almis