博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#委托总结-匿名方法&Lambda表达式
阅读量:5076 次
发布时间:2019-06-12

本文共 2107 字,大约阅读时间需要 7 分钟。

1,匿名方法

 匿名方法可以在声明委托变量时初始化表达式,语法如下

 

 之前写过这么一段代码:

delegate void MyDel(string value);    class Program    {        void Print1(string value)        {            Console.WriteLine("方法1:{0}", value);        }        void Print2(string value)        {            Console.WriteLine("方法2:{0}", value);        }        void Print3(string value)        {            Console.WriteLine("方法3:{0}", value);        }        ///         /// 执行委托方法        ///         /// 委托类型参数        /// 委托内方法的参数        void PrintFun(MyDel d, string value)        {            d(value);        }        static void Main(string[] args)        {            Program p = new Program();            MyDel del1, del2;//声明委托变量            del1 = p.Print1;            del2 = p.Print2;            p.PrintFun(del1, "已运行");            p.PrintFun(del2, "已运行");            Console.ReadKey();        }    }

现在可以改成这样:

delegate void MyDel(string value);    class Program    {
/// /// 执行委托方法 /// /// 委托类型参数 /// 委托内方法的参数 void PrintFun(MyDel d, string value) { d(value); } static void Main(string[] args) { Program p = new Program(); //匿名方法 Console.WriteLine("\n运行匿名方法"); MyDel d1 = delegate(string value) { Console.WriteLine("方法1:{0}", value); }; MyDel d2 = delegate(string value) { Console.WriteLine("方法2:{0}", value); }; p.PrintFun(d1, "以匿名方法运行"); p.PrintFun(d2, "以匿名方法运行"); Console.ReadKey(); } }

 

2,Lambda表达式

匿名方法的简化

 

delegate void MyDel(string value);    class Program    {        ///         /// 执行委托方法        ///         /// 委托类型参数        /// 委托内方法的参数        void PrintFun(MyDel d, string value)        {            d(value);        }        static void Main(string[] args)        {            Program p = new Program();//Lambda表达式            Console.WriteLine("\n运行Lambda表达式");            MyDel d3 = value => Console.WriteLine("方法3:{0}", value);            p.PrintFun(d3, "以Lambda表达式运行");            Console.ReadKey();        }    }

 

转载于:https://www.cnblogs.com/yangwang365/p/10027258.html

你可能感兴趣的文章
codevs 1080 线段树练习
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>