经由过程运用匿名托付(匿名要领),使编程变得越发天真,有关托付与匿名托付请参考我的前一篇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网别的相干文章!