学习一下子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但是没有实现匿名方法的操作的实现

  匿名方法最明显的好处就是可以降低常规方法编写时的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度。

 

posted @ 2013-02-09 16:03  绝对菜鸟  阅读(441)  评论(0编辑  收藏  举报