使用代理时显示错误

时间:2012-03-12 06:46:36

标签: c# delegates

您好,我有以下代码。

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 个答案:

答案 0 :(得分:4)

修改showDelegate以匹配addNumbers的参数:

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

除了返回类型之外,代理必须匹配参数的数量和类型。

你问题的第二部分主要是问:“为什么代表?”。对于这个答案,我建议您查看其他Stack Overflow帖子,以获得更详细和更精确的答案,一开始:

Delegates, Why? when & why to use delegates? The purpose of delegates