#c#
#c#
Вопрос:
Никакая перегрузка для «getSum» не соответствует делегату
Formulalt;doublegt;
Как я могу исправить эту ошибку?
мой делегат -:
public delegate T Formula lt;Tgt;(T arg1);
Getsum:
public delegate T Formula lt;Tgt;(T arg1); class CalculatorClass { public static double total; public Formulalt;doublegt; formula; public static double GetSum(double num1, double num2) { return total = num1 num2; } }
Мой код:
private void btnEqual_Click(object sender, EventArgs e) { num1 = Convert.ToDouble(txtBoxInput1.Text); num2 = Convert.ToDouble(txtBoxInput2.Text); Formulalt;doublegt; sum = new Formulalt;doublegt;(CalculatorClass.GetSum); }
Комментарии:
1. Вы не должны использовать
Convert.ToDouble
. Вместо этого используйтеDouble.TryParse
— и убедитесь, что вы тщательно обрабатываете условия ошибок.2. Мы не можем помочь вам, не ознакомившись с определением
CalculatorClass.GetSum
3. Имена параметров типа всегда должны начинаться с
T
(и неX
), поэтому измените объявление делегата наpublic delegate TValue Formulalt;TValuegt;(TValue arg1)
.4. Что такое класс калькуляторов. Получишь?
5. закончил редактировать его
Ответ №1:
Ваш делегат ожидает, что один параметр типа T getSum, очевидно, имеет 2 параметра. Попробуйте изменить свой делегат на:
public delegate T Formula lt;Tgt;(T arg1, T arg2);
и он будет компилироваться. Кстати, вы можете использовать встроенный делегат Funclt;in T1,in T2 out TResultgt;
в качестве Funclt;double, double, doublegt;