服装网站建设教程,WordPress主题里的AD,河北建造师网,lao3d wordpress 插件事件
委托变量如果公开出去#xff0c;很不安全#xff0c;外部可以随意调用
所以取消public,封闭它#xff0c;我们可以自己书写两个方法#xff0c;供外部注册与注销#xff0c;委托调用在子方法里调用#xff0c;这样封装委托变量可以使它更安全#xff0c;这个就叫…事件
委托变量如果公开出去很不安全外部可以随意调用
所以取消public,封闭它我们可以自己书写两个方法供外部注册与注销委托调用在子方法里调用这样封装委托变量可以使它更安全这个就叫做事件
1.外部不能随便调用只能注册和注销
2.只能自己去调用自己的委托
委托练习题
老师会在下课时打铃事件
学生们想在打铃事件发生的时候做自己的事情
小明想在打铃的时候去买东西吃
小张想在打铃时去打水
小红想在打铃时开始练习
小花想在打铃时去打羽毛球。
代码如下
using System;namespace 事件
{public delegate void CallDelegate();class Teacher{public string name;CallDelegate callDel;public void RegisterCallEvent(CallDelegate del){callDel del;}public void LogoutCallEvent(CallDelegate del){callDel - del;}public Teacher(string name){this.name name;}public void Call(){Console.WriteLine({0}打铃了,name);if (callDel ! null){callDel();}}}class Student{public string name;public string action;public Student(string name, string action){this.name name;this.action action;}public void DoThing(){Console.WriteLine(name action);}}class Program{static void Main(string[] args){Teacher teacher new Teacher(王老师);Student xiaoming new Student(小明, 买东西吃);Student xiaozhang new Student(小张, 打水);Student xiaohong new Student(小红, 练习);Student xiaohua new Student(小花, 打羽毛球);//teacher.callDel xiaoming.DoThing;//teacher.callDel xiaozhang.DoThing;//teacher.callDel xiaohong.DoThing;//teacher.callDel xiaohua.DoThing;//teacher.Call();teacher.RegisterCallEvent(xiaoming.DoThing);teacher.RegisterCallEvent(xiaozhang.DoThing);teacher.RegisterCallEvent(xiaohong.DoThing);teacher.RegisterCallEvent(xiaohua.DoThing);teacher.Call();}}}观察者模式
模型——视图
发布——订阅
源——收听者
一系列对象来监听另外一个对象的行为被监听者一旦触发事件/发布消息则被所有监听者收到然后执行自己的行为。
就是使用委托/事件让一系列对象把他们的行为来注册到我的委托中去。 该系列专栏为网课课程笔记仅用于学习参考。