WEB开发网
开发学院软件开发C语言 通过Demo来细看C#事件的内在机制 阅读

通过Demo来细看C#事件的内在机制

 2010-09-30 22:44:34 来源:WEB开发网   
核心提示:今天在博客园里面搜索了关于Delegate的文章,已经有很多好的博文了,最近我也研究了一下关于Delegate(委托)的背后的东西,通过Demo来细看C#事件的内在机制,也希望把研究的心得写出来供笔记参考,我们可能会听别人谈起过C#事件,至少我曾经听同行这样描述过:1、C#事件是特殊的委托2、C#中使用委托模型来实现事

今天在博客园里面搜索了关于Delegate的文章,已经有很多好的博文了。最近我也研究了一下关于Delegate(委托)的背后的东西,也希望把研究的心得写出来供笔记参考。

我们可能会听别人谈起过C#事件,至少我曾经听同行这样描述过:

1、 C#事件是特殊的委托

2、 C#中使用委托模型来实现事件的。

3、 C#中的委托是一个引用类型,可以把它看成一个特殊的”类”。

所以我这里就通过C#事件来说Delegate(委托)。先看一段示例代码:

public delegate void ProcessEventHandler(string name);
    public class CharlesLog
    {
       public event ProcessEventHandler processEvent;
       public void ProcessHandler(string name)
       {
           if (processEvent != null)
           {
               processEvent(name);
           }
           else
           {
               processEvent = new ProcessEventHandler(DefaultHandler);
               processEvent(name);
           }
       }
        public void DefaultHandler(string name)
        {
            Console.WriteLine("default Process!");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            CharlesLog charlesLog = new CharlesLog();
            charlesLog.processEvent += new ProcessEventHandler(CustomProcess); 
            charlesLog.ProcessHandler("CharlesChen");
        }
        public static void CustomProcess(string name)
        {
            Console.WriteLine("custom Process!");
        }
}

1 2 3 4  下一页

Tags:通过 Demo 细看

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接