分享

帮助理解委托、匿名委托、Lambda表达式还有事件

 goodwangLib 2018-01-31

写了一个小程序,能够很好的认识到这三个的用法

复制代码
namespace Lambda{ /// /// 实现根据指定运算形式 输出结果 /// class Program { delegate int TwoInt32OperationDel(int paramA, int paramB); static void Operation(TwoInt32OperationDel del) { for (int i = 0; i <>4; i++) { for (int y = 0; y <>4; y++) { int result = del(i, y); Console.Write('{0}and{1}={2} ',i,y,result); } Console.WriteLine(); } } private static int twoInt32Plus(int a, int b) { return a + b; } private static int twoInt32Multi(int a, int b) { return a * b; } static void Main(string[] args) { ////1 匿名委托方法调用:(匿名方法只是简化了一下代理的写法) // Console.WriteLine('A+B'); // Operation(delegate(int a, int b) {return a + b; }); // Console.WriteLine('A*B'); // Operation(delegate(int a, int b) { return a * b; }); // Console.Read(); //2 代理 Console.WriteLine('A+B'); TwoInt32OperationDel t = new TwoInt32OperationDel(twoInt32Plus); TwoInt32OperationDel t2 = new TwoInt32OperationDel(twoInt32Multi); Operation(t); Console.WriteLine('A*B'); Operation(t2); Console.Read(); ////3 Lambda方法调用 //Console.WriteLine('A+B'); //Operation((a, b) => { return a + b; }); //Console.WriteLine('A*B'); //Operation((a, b) => { return a * b; }); //Console.Read(); } }}
复制代码

 事件的使用:

复制代码
public delegate int plusDelegate(int a,int b); public event plusDelegate pl; public int plus(int a, int b) { return a + b; } private void button7_Click(object sender, EventArgs e) { pl += plus; textBox3.Text = pl(3, 4).ToString(); }
复制代码

 

委托的使用:

复制代码
public delegate int plusDelegate(int a,int b); public int plus(int a, int b) { return a + b; } private void button7_Click(object sender, EventArgs e) { plusDelegate p = new plusDelegate(plus);//方法1 plusDelegate p = (int a, int b) => { return a + b; };//方法2 plusDelegate p = delegate(int a, int b) { return (a + b); };//方法3 textBox3.Text = p(3, 4).ToString(); }
复制代码

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多