C# 委托(Delegate)二

一.委托的多播(Multicasting of a Delegate):

委托对象,使用 "+" 运算符进行合并,一个合并委托调用它所合并的两个委托。使用"-" 运算符从合并的委托中移除组件委托。

注:只有相同类型的委托可被合并。

应用委托的这个有用的特点,可以创建一个委托被调用时要调用的方法的调用列表。这被称为委托的 多播(multicasting),也叫组播。

二.应用示例:

示例界面:

代码:

class TestDelegate

{

static int num = 1;

public static int AddNum(int Num1)

{

num += Num1;

return num;

}

public static int MultNum(int Num2)

{

num *= Num2;

return num;

}

public static int getNum()

{

return num;

}

}

delegate int NumberChanger(int n);

private void button15_Click(object sender, EventArgs e)

{

// 创建委托实例

NumberChanger nc;

NumberChanger nc1 = new NumberChanger(TestDelegate.AddNum);

NumberChanger nc2 = new NumberChanger(TestDelegate.MultNum);

nc = nc1;

nc += nc2;

// 调用多播

nc(5);

numericUpDown11.Value = TestDelegate.getNum();

}

三.委托(Delegate)的用途 :

简单来讲,使用一个委托来调用两个方法,实现不同的调用方法需求;

相关推荐
lingran__4 分钟前
速通ACM省铜第二天 赋源码(Adjacent XOR和Arboris Contractio)
c++·算法
zhangfeng11336 分钟前
R geo 然后读取数据的时候 make.names(vnames, unique = TRUE): invalid multibyte string 9
开发语言·chrome·r语言·生物信息
励志成为糕手6 分钟前
Kafka架构:构建高吞吐量分布式消息系统的艺术
分布式·架构·kafka·消息中间件·数据流处理
Sally璐璐10 分钟前
Go组合式继承:灵活替代方案
开发语言·后端·golang
zzzsde10 分钟前
【c++】类和对象(4)
开发语言·c++
码熔burning11 分钟前
从 new 到 GC:一个Java对象的内存分配之旅
java·开发语言·jvm
晨非辰12 分钟前
#C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!
c语言·开发语言·经验分享·笔记·其他·学习方法·visual studio
gou1234123414 分钟前
Go语言io.Copy深度解析:高效数据复制的终极指南
开发语言·golang·php
书院门前细致的苹果18 分钟前
MySQL 中的 B+树和 B树的区别详解
数据结构·数据库·mysql
白玉cfc26 分钟前
【OC】单例模式
开发语言·ios·单例模式·objective-c