CSharp - 调用不带参数的函数 - 错误 33 'foo' 没有重载匹配委托

CSharp - Calling a functions without params - error 33 no overload for 'foo' matches delegate

我有两段代码。一个在工作,另一个不工作,我真的不知道 c# 和 google 并没有帮助我弄明白很多。希望有人能解释一下是什么问题。

编辑 - d 是 public delegate List<CustomObj> SearchFoo(string a, string b);

为什么这段代码有效

d = foo;

private List<CustomObj> foo(string a, string b)
        { ... }

这个没有?

d = foo;

private List<CustomObj> foo(string a, string b, string c)
        { ... }

第一段代码运行没有问题,当调用foo函数a = ""b = null时,我不知道为什么要这样做。

第二段代码returns出错:

Error   33  No overload for 'foo' matches delegate 'Core.Panels.ListFooPannels.SearchFoo'   C:\Foo\Functionalities\Foo\FooForm.cs

该项目开发于 Visual Studio 2008 年。

谢谢, 贾科莫

您的委托需要两个参数:

public delegate List<CustomObj> SearchFoo(string a, string b);

一个字符串A和一个字符串B

d = foo;

private List<CustomObj> foo(string a, string b, string c)
        { ... }

当你这样做时,你在 foo 中有 3 个参数,但你的委托只需要 2 个,这就是你得到异常的原因。