事件和委托 (一)

1、委托和事件简介
委托的本质是一个类
事件是一个委托的私有变量加上两个公有的方法(事件的+=和-=),这是委托和事件的本质区别
2、事件和委托举例
1)string是一个类,而string s=“a”,这个s是string类型的一个变量
2)public delegate void myDel();相当于你创建了一个myDel的类,所以委托可以在任何地方创建,类需要实例化,所以委托也需要实例化,要myDel m=…;
3)申明一个事件 public event myDel myEvent;
4)事件myEvent是一个myDel类型的一个变量,因为是变量,所以事件只能在类里面申明,不需要实例化,有点类似与上面的哪个m,当然不全是,他还有两个方法(±、-=),调用一次+=方法,myEvent+=MethodA;其实是吧MethodA方法,封装成一个没有、Del类型的委托对象,然后把这个对象的引用赋值给myEvent变量。如果多次调用+=,就是多个方法封装成了多个没有myDel委托对象,然后这些委托对象放在一个列表里面,然后myEvent就指向这个列表,触发的时候,就是调用这个列里面的所有委托的lnvoke方法
3、事件和委托用法上的区别
主要就是事件只能在申明他的这个类里面触发,委托没有这个限制。
4、委托语法使用
1)语法:public delegate void BuyWaterEventHandler();
2)其中delegate是关键字,声明委托的时候命名时后缀加入EventHandle
3)方法
在这里插入图片描述
我们看方法,是实现买水这个功能的,而委托是委托你去帮我买水的。方法是具体做实现功能,委托只是命令而已。
具体使用委托来实现刚刚哪个委托李某人去买水的程序护设计
在这里插入图片描述
在这里插入图片描述
最后输出结果
在这里插入图片描述
**注意:**这里声明的委托方法,BuyWater委托中加入LiBuy.LiBuyWater买水的方法,这个方法参数必须加入,因为委托的构造函数参数不为空。同时需要注意委托参数的返回类型都是要和具体委托方法一样的。
在这个例子中返回string类型 ,都是无参的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值