您好,我有以下代码。
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);
那么委托的需要是什么?
请帮我。
谢谢大家。
答案 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