Помогите упростить класс MathFuction - C#
Формулировка задачи:
даже не спрашивайте зачем мне это надо ну там короче это связано с математическим интерпретатором... типа будет коллекция функций таких
в общем посмотрите пожалуйста что еще можно упростить? и еще почему у меня не получается для проверки типа функции юзать оператор is? пишет "никогда не будет иметь тип double", хотя она как раз таки имеет тип double
public class MathFuction { public MulticastDelegate Function { get; private set; } public int CountOfArguments { get; private set; } public string Name { get; private set; } public MathFuction(MulticastDelegate function) : this(function, function.Method.Name) { } public MathFuction(MulticastDelegate function, string name) { Function = function; var parameters = function.Method.GetParameters(); var parametersDouble = parameters.Where(info => info.ParameterType.Name.Equals("Double")).ToArray(); if (parameters.Length != parametersDouble.Length || !function.Method.ReturnType.Name.Equals("Double")) throw new ArgumentException("function"); CountOfArguments = parameters.Length; Name = name; } public double Invoke(params double[] args) { if (args.Length != CountOfArguments) throw new ArgumentException("args"); return (double)Function.DynamicInvoke(args); } }
Решение задачи: «Помогите упростить класс MathFuction»
textual
Листинг программы
/* 16 */ var parametersDouble = parameters.Where(info => info.ParameterType is double).ToArray(); /* 18 */ if (parameters.Length != parametersDouble.Length || !(function.Method.ReturnType is double))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д