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

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

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

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

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

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

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


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

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

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы