Помогите упростить класс MathFuction - C#

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

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

даже не спрашивайте зачем мне это надо ну там короче это связано с математическим интерпретатором... типа будет коллекция функций таких
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);
    }
}
в общем посмотрите пожалуйста что еще можно упростить? и еще почему у меня не получается для проверки типа функции юзать оператор is? пишет "никогда не будет иметь тип double", хотя она как раз таки имеет тип double

Решение задачи: «Помогите упростить класс MathFuction»

textual
Листинг программы
/* 16 */ var parametersDouble = parameters.Where(info => info.ParameterType is double).ToArray();
/* 18 */ if (parameters.Length != parametersDouble.Length || !(function.Method.ReturnType is double))

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


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

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

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