除了与代表们合作一年多以来,我一直在研究代表报告。
查找有关C#2.0中使用的匿名方法与C#中的lambda表达式之间的区别的一些信息,我读到一些有关2.0匿名方法提供lambda不提供的功能的信息:它们可以省略参数列表。
对此进行了一些研究之后,我尝试在运行最新版本C#的个人IDE上进行测试,发现当我尝试使用它们为我的Delegate类型分配没有任何参数的匿名方法时,错误:
委托Test.MyHelloDelegate不接受0个参数
class TestClass
{
public delegate void MyHelloDelegate (string s);
MyHelloDelegate Hello = delegate () { Console.WriteLine("Hello from delegate"); };
private void CallHello ()
{
Hello("dummy");
}
}
我自己的假设是,由于人们无论如何都只会使用lambda,所以它已被修补,但我确实需要一些证据,因为我会将其放入报告中。很想知道是否有人对此有何看法。
答案 0 :(得分:0)
是的,因为您附加的匿名方法未采用输入参数。更改为
'
如果您不想传递任何参数,请考虑使用以下语法
public delegate void MyHelloDelegate (string s);
MyHelloDelegate Hello = delegate(string s) { Console.WriteLine("Hello from delegate " + s); };