MethodInfo.Invoke パラメータなし 質問する

MethodInfo.Invoke パラメータなし 質問する

私がやろうとしているサンプルコードは、私の英語よりも確実に良くなるでしょう:

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];
}

おすすめ記事