• Ошибка: «Отсутствует аргумент, соответствующий требуемому формальному параметру», в чем причина?

    @cicatrix
    было бы большой ошибкой думать
    Вы передаёте мета-описания функций, а не их реализации.
    Делегат - это указатель на место в памяти процесса, по которому расположен тот или иной метод, который можно вызвать, если соблюдать соглашения, предписанные делегатом - количество и типы аргументов и возвращаемое значение.
    В вашем случае реализаций мат. функций в памяти нет. Машина не знает, по какому адресу сделать вызов.
    Вы должны написать реализации синуса, косинуса и пр. Только тогда вы сможете передавать функции для выполнения другому методу через делегат.

    Вот простенький пример (реализация функций может быть и в отдельных методах):
    delegate double mathfunc(double arg);
    static void Main()
    {
            mathfunc sin = arg => Math.Sin(arg);  // реализация синуса
            mathfunc cos = arg => Math.Cos(arg);  // реализация косинуса
            var result_sin = DoMath(sin, Math.PI / 2);  // передача адреса на реализацию синуса методу DoMath
            var result_cos = DoMath(cos, Math.PI / 2);
    }
    
    // Метод, который выполняет вызов функции через делегат
    static double DoMath(mathfunc function, double argument) 
    {
        return function(argument);
    }
    Ответ написан
    Комментировать