Отображение ошибки при использовании делегатов - PullRequest
1 голос
/ 12 марта 2012

Здравствуйте, у меня есть следующий код.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myConsole
{
    public delegate int showDelegate();
   public class addmultipleClass
    {
        public  int addNumbers(int a, int b)
        {
            return (a + b);
        }
        public int multiplyNumbers(int a, int b)
        {
            return (a * b);
        }
    }
    class Delegate
    {      
        static void Main(string[] args)
        {
            addmultipleClass myObj = new addmultipleClass();
           showDelegate add = new showDelegate(myObj.addNumbers);
        }
    }

}

Это показывает ошибку, подобную этой No overload for 'addNumbers' matches delegate 'myConsole.showDelegate'

Почему она показывает эту ошибку.Что не так в моем коде.Разве это не правильный способ ссылки на метод addNumbers ().

Почему я должен использовать делегата здесь.Я могу добиться этого с помощью объекта класса.как myObj.addNumbers(10,20); Так зачем нужен делегат?Пожалуйста, помогите мне.Спасибо всем.

1 Ответ

4 голосов
/ 12 марта 2012

Измените showDelegate для соответствия параметрам addNumbers:

public delegate int showDelegate(int a, int b);

Делегаты должны соответствовать количеству и типу параметров в дополнение к вашему типу возвращаемого значения.

Вторая часть вашего вопроса по существу спрашивает: «Почему делегаты?».Для ответа на этот вопрос я предлагаю вам взглянуть на другие посты переполнения стека для более подробных и точных ответов, для начала:

Делегаты, почему? когда и зачем использовать делегатов? Назначение делегатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...