A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯慧杰 中级黑马   /  2012-7-9 14:39  /  1699 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

参考代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleAppFirst.Demo
{
    class Alarm_Publisher
    {
        public delegate void Dele_Alarm(Args_Class e);//委托的定义
        public event Dele_Alarm Alarm;//事件的声明
        //发布事件
        public void AlarmAt(Args_Class e)
        {
            if (Alarm != null)//当事件发生时
                Alarm(e);//调用事件处理程序
        }
    }
    class Args_Class//当事件发生时携带的数据
    {
       public int second;
       public int minute;
       public int hour;
    }
    class Order
    {
        //处理程序
        public static void GetUp(Args_Class e)
        {
            Console.WriteLine(e.hour+e.minute+"点了,起床了");
        }
    }
    class EventDemo
    {
        static void Main()
        {
            Alarm_Publisher al = new Alarm_Publisher();
            al.Alarm += new Alarm_Publisher.Dele_Alarm(Order.GetUp);//代表事件发生了
            Args_Class ar = new Args_Class();
            ar.hour = 7;
            al.AlarmAt(ar);//处理事件
        }

        //static void al_Alarm()
        //{
        //    throw new Exception("The method or operation is not implemented.");
        //}
    }
}
委托和是和事件是的内存分配是怎样的????


评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
1,委托 可以看成一种表示函数的数据类型.类似函数指针;
2,委托是一种安全的类似与函数指针,但是她比指针要安全的多,它可以把方法作为一个参数传递给另一个方法,可以理解为指向函数的引用;
3,事件是特殊的委托 ;
4,事件是一种消息机制,它是一种委托,委托不带方法体。
5,委托和事件在内存分配是相同的,都在内存开辟一段空间进行数据的存储与处理;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马