参考书籍: 《C#图解教程》
委托就像C++的函数指针一样,可以指向一个函数,但委托更牛逼,指的其实是一个函数列表,依次执行函数。 在C++中,匿名方法和Lambda表达式其实是一回事,C#里就是两回事了。
匿名方法是要带delegate关键字的。
//正常的画风应该是这样的。 MyDel del = delegate(int value) { return value + 100; } //省略圆括号,但必须满足以下两个条件 //1.委托的参数列表里面不包含任何out参数。 //2.匿名方法不使用任何参数。 MyDel del = delegate { SomeFunction(); SomeFunction2(1,2,3,4); } del(666); //传进去的666对上面没有参数的匿名函数没有影响。 //params参数,如果委托有params参数,匿名方法的参数列表将忽略params关键字。 delegate void anotherDel(int X,params int[] Y); anotherDel aDel = delegate(int X,int Y) { }; //省略了params相比匿名方法,Lambda表达式看起来简单许多,直接上图。