私がやろうとしているサンプルコードは、私の英語よりも確実に良くなるでしょう:
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;
}
残念ながら、TryParse メソッドには出力パラメータが必要なので、これは機能しません。これを解決する方法はありますか?
(追伸: これはダックタイピングの良い例ではないでしょうか? - すべての numericType に "TryParse" があることはわかっているのですが、それとも私が間違っているのでしょうか?)
ベストアンサー1
public static bool TryParse( string text, out int number ) { .. }
MethodInfo method = GetTryParseMethodInfo();
object[] parameters = new object[]{ "12345", null }
object result = method.Invoke( null, parameters );
bool blResult = (bool)result;
if ( blResult ) {
int parsedNumber = (int)parameters[1];
}