Динамический вызов методов класса Math без if - C#
Формулировка задачи:
В общем нужна помощь вот в чём:
- у меня есть строка в которую я записываю любые данные;
- из неё я извлекаю только sinx, cosx, tanx. А сделать хочу вот что: чтобы Math.(автоматически определило что считать, синус или косинус, зависит от того что в строке).
Решение задачи: «Динамический вызов методов класса 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>)));
}