旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

C#中关于匿名托付和Lambda表达式的运用详解【C#.Net教程】,csharp,Lambda,.net

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:26评论:0


导读:这篇文章主要为人人细致引见了C#匿名托付与Lambda表达式的相干材料,具有肯定的参考价值,感兴趣的小伙伴们能够参考一下经由过程运用匿名托付(匿名要领),使编程变得越发天真...
这篇文章主要为人人细致引见了C#匿名托付与Lambda表达式的相干材料,具有肯定的参考价值,感兴趣的小伙伴们能够参考一下

经由过程运用匿名托付(匿名要领),使编程变得越发天真,有关托付与匿名托付请参考我的前一篇Blog《托付与匿名托付》。

继承之前示例,代码以下:


static void Main(string[] args)
{

   Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b)
  {
   return a + b;
  };
   Worker worker = new Worker();
   int result = worker.HandleTwoNumber(10, 10,method);

   Console.WriteLine(String.Format("Result:{0}", result));

   Console.ReadLine();
}

上述顺序worker将依据Main给定的参数与盘算体式格局(method),盘算出效果返回。依据等效性代码能够进一步简化,以下:


 static void Main(string[] args)
  {
   Worker worker = new Worker();
   int result = worker.HandleTwoNumber(10, 10, delegate (int a, int b)
   {
    return a + b;
   });

   Console.WriteLine(String.Format("Result:{0}", result));

   Console.ReadLine();
  }

看到此处有过js、jquery开辟履历的朋侪能够会突感亲热,哦...匿名函数。在jquery中随处都用的$("#id").click(function(){.........})。

C#中关于匿名托付在运用时能够进一步精简,再精简的效果就变成了表达式,称为Lambda表达式。


static void Main(string[] args)
  {

   Worker.TwoNumberHandleMethodDelegate method = delegate(int a, int b)
  {
   return a + b;
  };
}

Lambda表达式表述:


static void Main(string[] args)
  {

   Worker.TwoNumberHandleMethodDelegate method = (a, b)=>
  {
   return a + b;
  };
}

C# Lambda表达式运用 => 分为前后两部分,(a, b) 为参数列表,{....}为要领体。


 static void Main(string[] args)
  {
   Worker worker = new Worker();
   int result = worker.HandleTwoNumber(10, 10, (a, b) =>
   {
    return a + b;
   });

   Console.WriteLine(String.Format("Result:{0}", result));

   Console.ReadLine();
  }

下面给出要领与Lambda表达式转换对比


private void A1()
    {
      Console.WriteLine("....");
    }
//Lambda
()=>{Console.WriteLine("....");};
//假如要领体代码只要一句,如上还可省去要领体大括号
()=>Console.WriteLine("....");


private string A2(int a, int b)
    {
      return String.Format("{0}+{1}={2}", a, b, a + b);
    }
    //如上示例可简化为
    (a,b)=>{return String.Format("{0}+{1}={2}", a, b, a + b);}
    //由于要领体只要一句,可进一步简化
    (a,b)=> String.Format("{0}+{1}={2}", a, b, a + b);
    //此时注重return应当去掉,C#编译器自动识别=>做返回值


private string A3(int a)
    {
      return String.Format("{0}", a);
    }
    //上面示例可简化为
    (a)=>String.Format("{0}", a);
    //假如参数列表只要一个参数,参数列表的()能够去掉,上面进一步简化为
    a=>String.Format("{0}", a);

经由过程这篇文章你能够已意想到在C#中,要领、托付、匿名要领,lambda表达式并没有显著辨别边境,它们之间能够天真转化。在现实开辟中关于托付的知识点异常多,如托付与事宜。假如时候许可,愿望能把托付深化的文章写一下。

以上就是C#中关于匿名托付和Lambda表达式的运用详解的细致内容,更多请关注ki4网别的相干文章!

标签:csharpLambda.net


欢迎 发表评论: