猿问

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

我有两段代码。一个它正在工作,另一个没有,我真的不知道 c# 和谷歌并没有帮我弄清楚太多。希望有人可以解释是什么问题。


编辑- 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我不知道为什么要这样做。


第二段代码返回错误:


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

该项目是在 Visual Studio 2008 中开发的。


HUWWW
浏览 135回答 1
1回答

海绵宝宝撒

您的委托需要两个参数:public delegate List<CustomObj> SearchFoo(string a, string b);一个字符串 A 和一个字符串 Bd = foo;private List<CustomObj> foo(string a, string b, string c)&nbsp; &nbsp; &nbsp; &nbsp; { ... }当你这样做时,你在 foo 中有 3 个参数,但你的委托只需要 2 个,这就是你得到异常的原因。
随时随地看视频慕课网APP
我要回答