Никакая перегрузка не соответствует делегату c#

#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;