学习一下子C#的匿名方法
匿名方法简单的说就是没有名字的方法,而通常情况下的方法定义是需要名字的;
public int sum(int a, int b) //创建方法 { return a + b; //返回值 }
上面这个方法就是一个常规方法,这个方法需要方法修饰符(public)、返回类型(int)方法名称(sum)和参数列表。
而匿名方法可以看作是一个委托的扩展,是一个没有命名的方法;
匿名方法是一个匿名(没有名称)的方法(如下例的language,真正的方法是后面的CN或EN的语言方法),但是匿名方法可以将方法名作为参数进行传递;
namespace TestFunction { //匿名方法,好处可以把符合方法签名的方法做参数传递 public delegate void language(string name);//匿名方法 class Language { public void Selectlanguage(string name,language lan) { lan(name); } } class Test { static void Main(string[] args) { Language langwag = new Language(); langwag.Selectlanguage("乔巴",Cn);//选择语言 通过匿名调用Cn方法 langwag.Selectlanguage("乔巴", En);//选择语言 通过匿名调用En方法 } public static void Cn(string _name) { Console.WriteLine("{0},你好!", _name); } public static void En(string _name) { Console.WriteLine("{0},Holle", _name); } } }
又比如,
delegate int Sum(int a,int b); //声明匿名方法,上述代码声明了一个匿名方法Sum但是没有实现匿名方法的操作的实现
匿名方法最明显的好处就是可以降低常规方法编写时的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度。