【c# 学习笔记】委托链的使用
2024-08-31 09:59:10
委托链其实就是委托类型,只是委托链把多个委托链接在一起而已,也就是说,我们把链接了多个方法的委托称为委托链或多路广播委托。如下:
public delegate void DelegateTest(); static void Main(string[] args)
{
//用静态方法来实例化委托
DelegateTest dtstatic = new DelegateTest(Program.method1); DelegateTest dtinstance = new DelegateTest(new Program().method2); //定义一个委托对象,一开始初始化为null,即不代表任何方法。
DelegateTest delegatechain = null; //使用 “+”符号链接委托,链接多个委托后就成为了委托链 delegatechain += dtstatic;
delegatechain += dtinstance; //调用委托链
delegatechain();
Console.Read(); }
private static void method1()
{
Console.WriteLine("这是静态方法");
} //实例方法 private void method2()
{
Console.WriteLine("这是实例方法");
}
从委托链中移除委托
public delegate void DelegateTest(); static void Main(string[] args)
{
//用静态方法来实例化委托
DelegateTest dtstatic = new DelegateTest(Program.method1); DelegateTest dtinstance = new DelegateTest(new Program().method2); //定义一个委托对象,一开始初始化为null,即不代表任何方法。
DelegateTest delegatechain = null; //使用 “+”符号链接委托,链接多个委托后就成为了委托链 delegatechain += dtstatic;
delegatechain += dtinstance; //使用 “-”运算符 移除委托
delegatechain -= dtstatic;
//调用委托链
delegatechain();
Console.Read(); }
private static void method1()
{
Console.WriteLine("这是静态方法");
} //实例方法 private void method2()
{
Console.WriteLine("这是实例方法");
}
最新文章
- centos 创建swap 交换分区
- django model Meta选项
- JVM中,对象在内存中的布局
- VSS 的修复和扫描
- JSONModel 遇见关键字为id或者description
- html5 教程网站
- Codeforces Round #261 (Div. 2)
- Ext.grid.Panel 数据动态改变后刷新grid
- 你的 Docker 应用是安全的吗?
- VM虚拟机上 实现CentOS 6.X下部署LVS(DR)+keepalived实现高性能高可用负载均衡
- Ext &; Java 上存图片 Demo
- EF Code First中的主外键约定和一对一、一对多关系的实现
- 自定义微信小程序导航(兼容各种手机)
- Android Studio集成Flutter
- 修改文件属性(attrib)
- Skynet服务热点火焰图分析
- 把java程序作为windows服务运行
- python 创建临时文件和文件夹
- WebClient和WebRequest获取html代码
- redis集群cluster模式搭建
热门文章
- P4062 [Code+#1]Yazid 的新生舞会
- PostgreSQL 时间函数 extract函数
- ELF格式说明
- IntelliJ IDEA实时代码模板
- spoj Longest Common Substring (多串求最大公共子序列)
- Thift初探 (一)
- (转)kvm初识
- Result window is too large, from + size must be less than or equal to [10000]
- 2018-2019-2 《网络对抗技术》Exp8 Web基础 Week11-12 20165233
- 使用java写js中类似setTimeout的代码