Динамический вызов методов класса Math без if - C#

Узнай цену своей работы

Формулировка задачи:

В общем нужна помощь вот в чём:
  • у меня есть строка в которую я записываю любые данные;
  • из неё я извлекаю только sinx, cosx, tanx. А сделать хочу вот что: чтобы Math.(автоматически определило что считать, синус или косинус, зависит от того что в строке).
Не хочу через if делать, потому что, функций будет больше и для каждой писать условия нудно, да и говнокодом будет пахнуть.

Решение задачи: «Динамический вызов методов класса Math без if»

textual
Листинг программы
var mathFunctions = new Dictionary <string, Func<double, double>>(StringComparer.OrdinalIgnoreCase);
var methods = typeof(Math).GetMethods()
    .Where(m => { var p = m.GetParameters(); return m.ReturnType == typeof(double) && p.Length == 1 && p[0].ParameterType == typeof(double); } );
foreach (MethodInfo m in methods)
{
    mathFunctions.Add(m.Name, (Func<double, double>)m.CreateDelegate(typeof(Func<double, double>)));
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы