您的位置:首页 > 编程语言 > C#

(zz)从callback的角度来理解.NET/C# 中的 委托 (delegate)与 事件 (event)

2013-08-17 14:46 796 查看
delegate是个比较生僻的单词(其实是我英语差~)。那先看看简要的来自金山词霸的解释:

代码5

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DelegateTest2
{
class Employee
{
publicdelegatevoid NoticeList(string msg);
private NoticeList MyNoticeList;

publicvoid AddToNoticeList(NoticeList np)
{
MyNoticeList += np;
}

publicvoid Notice()
{
if (MyNoticeList !=null)
{
MyNoticeList("I have finished a task!");
}
}
}

class Leader
{
}

class Manager
{
}

class Program
{
staticvoid Main(string[] args)
{
Employee XiaoLi =new Employee();
Leader LaoLiu =new Leader();
Manager AnZong =new Manager();

XiaoLi.AddToNoticeList(msg => { Console.WriteLine(msg +" Yes,i will check it!"); });
XiaoLi.AddToNoticeList(msg => { Console.WriteLine(msg +" UMM,good boy!"); });

XiaoLi.Notice();
}
}
}

  注意这次我们没有用event.而是把匿名方法用Lambda表达式的方式加在了原始的私有委托列表中。

  另外,Lambda表达式在LINQ中也有大量的应用!

  从1.0的没有泛型,到3.5的Lambda表达式,LINQ,.NET的语法功能及编程效率在步步提高。并且也增加了学习难度,用熟了,很简洁,没上手时,往着一看,水深得吓人!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: