Подтвердить что ты не робот

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 необходим параметр out, поэтому это не работает. любые идеи, как это решить?

(ps.: would'nt это будет хорошим примером для утиной печати?), потому что я знаю, что каждый numericType имеет "TryParse" или я ошибаюсь?)

4b9b3361

Ответ 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];
}