C#_委托与事件
2024-08-31 01:46:46
委托:
把方法当作参数进行传递
public delegate void AddDelegate(string name);
public class Ad{
//addDelegate就是委托的一个实例,把方法当作参数进行传递进去,逻辑分离,解除耦合
public static void AddHander(string name,AddDelegate addDelegate){
addDelegate(name);//调用该方法
}
}
public static void Add(string name){ cw(name);}
调用:
AddDelegate add = new AddDelegate(Ad.Add);//实例化委托
Ad.AddHander("abc",add);//把委托当参数传递进去
事件:
public delegate void CatDelegate();//定义一个委托
//声明一个猫
public class Cat{
public event CatDelegate catHander;//声明一个事件
public void MiaoCat(){
catHander.Invoke();//执行事件
}
}
定义:委托就是一种类型,事件是委托的一种实例;
调用:Cat cat =new Cat();
cat.catHander+=Run;//注册动作 Run()方法
cat.catHander+=Miao;//注册动作 Miao()方法
cat.MiaoCat();//执行调用事件方法,过程会依次执行Run、Miao这俩个方法
最新文章
- Unity UGUI知识点
- 安装pillow错误的解决方案
- test2
- IIS7.5 在已有的WEB网站上配置FTP发布
- 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现
- POJ3422 Kaka's Matrix Travels
- MySQL的事件调度器
- ASP.NET MVC 及 Areas 简单控制路由
- 基于物联网操作系统HelloX的智慧家庭体系架构
- 那两年炼就的Android内功修养
- Java 9 揭秘全目录汇总
- sublime中安装package control总是失败
- MySQL视图,触发器,事务,存储过程,函数
- C# 一款属于自己的音乐播放器
- 洛谷P2764 最小路径覆盖问题
- python的错误类型和异常处理
- LeetCode OJ:Maximum Subarray(子数组最大值)
- MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1 (转)
- MySQL高可用之PXC安装部署(续)
- Android 菜单 之 上下文菜单ContextMenu
热门文章
- ASP.NET MVC从请求到响应发生了什么
- JAVA开发学习
- 实用的php清除html,php去除空格与换行,php清除空白行和换行,提取页面纯文本
- Python 如何删除列表中的空值
- JQuery中$.cookie()方法的使用[转]
- Cocos2d-x CCControlPotentiometer之圆形音量button及特效
- SQL update select结合语句详解及应用
- Spring Cloud构建微服务架构 - 服务网关
- 【转】Android 创建AVD各参数详解
- Spring4.2+SpringMVC+Mybatis3.4的集成(转-)