@DancingOnWater

Как с помощью рефлексии получить перегруженный метод, где один из параметров ref или out?

Ситуация. Нужно с помощью рефлексии вызвать TryParse (например у Double)
Но есть две проблемы, TryParse перегруженный метод. а во-вторых мне нужен конкретно
TryParse(string, out double)
По идее этот код должен работать:

var modefier = new ParameterModifier(2);
modefier[0] = false;
            modefier[1] = true;
            MethodInfo mi1 =
 typeof(Double).GetMethod("TryParse", new Type[]{typeof(string), typeof(Double)}, new ParameterModifier[]{modefier});

Однако возвращается null. ЧЯНТД?
  • Вопрос задан
  • 2278 просмотров
Решения вопроса 1
aush
@aush
MethodInfo mi1 = typeof(Double).GetMethod("TryParse",
              BindingFlags.Static | BindingFlags.Public,
              null,
              new Type[] { typeof(string), typeof(Double).MakeByRefType() },
              null);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@smet4ik
MethodInfo TryParseDouble = typeof(double).GetMethod("TryParse",
                BindingFlags.Public | BindingFlags.Static,
                null,
                CallingConventions.Any,
                new[] { typeof(string), typeof(double).MakeByRefType() },
                null);

            object[] parameters = {"1818,1818", 0.0 };
            double rezult;
            if ((bool)TryParseDouble.Invoke(null, parameters))
            {
                rezult = (double)parameters[1];
            }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы