C#委托四——事件event

PanPen120在CSDN上原创,如其他网站转载请注意排版和写明出处:
研究委托,因为有函数指针的基础,还容易上手,但是对于一些概念和实践,总是为了弄的非常清楚而纠结,这几篇关于委托的文章我是结合《C#与.NET4高级程序设计》、MSDN、借鉴其他人的博文来总结话语,以最直接简洁的话来阐述清楚

关键字:

event

描述/优势:

是delegate的子集。限制委托对象实例,是一种特殊的delegate

目的:

1.和委托一起使用,简化发送事件通知到调用者的处理过程,纯粹是用以节省键入时间的可选方案,简化自定义方法的构建来为委托调用列表增加和删除方法(书中的总结,以后用来吹牛可以用得到)
2 保护delegate的一种方式(和优势中的限制是一个意思)

注意:

1.支持多路广播,即一个对象可以调用多个方法,是个方法列表

2.注册方法时只能用+=,注销方法时-=(注册就是这个event对象可以调用什么方法,就给它赋值什么函数,注销就是调用event对象的时候取消那个方法)

3.注册的方法需要是静态的或是对象引用的

用法:

      总:和delegate搭配使用

      分:首先声明delegate的类型
      分:其次使用event关键字 

示例:

namespace testEvent3
{
    public delegate void EventHandler();//声明一个返回值void无参的delegate类型
    class Test
    {
        public event EventHandler Click;   //使用event

        public void MyClick()
        { Click();}
    }
    class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();
            test.Click += PrintfMyName;
            //test.Click = PrintfMyName;
            //这里的注释是因为使用了event,所以赋值只可以+=或者-=,不能=
            //test.Click();
            //这里的注释是因为使用了event,所以不能随意调用,所以我写了MyClick()
            test.MyClick();
        }
        static void PrintfMyName()
        { Console.WriteLine("My name is panpen120"); }
    }
}

小结:event是事件的核心编程,何为事件,即做了一件事A,即触发了事件B,由此才有代码中那两行的注释,怎么解释呢:
不管event是public还是private,都不能随意执行它的方法,前提你做了事A
由此你觉得是不是模拟了工具箱里的Button

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值