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)的用途 :

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

相关推荐
程序员-周李斌几秒前
Java 代理模式详解
java·开发语言·系统安全·代理模式·开源软件
池塘的蜗牛3 分钟前
NR系统相位补偿的原因与原理
算法
@曾记否11 分钟前
【Betaflight源码学习】Betaflight 嵌入式操作系统架构解析:与 FreeRTOS 的深度对比
学习·架构
G***T69114 分钟前
Python项目实战
开发语言·python
若水不如远方33 分钟前
深入理解Reactor:从单线程到主从模式演进之路
java·架构
树在风中摇曳39 分钟前
链表五大经典面试题详解:双指针与基础操作实战
数据结构·链表
Sɪʟᴇɴᴛ໊ོ23542 分钟前
Anyview数据结构第一章(按需自取)
c语言·开发语言·数据结构·算法
松岛雾奈.2301 小时前
机器学习--数据集的标准化和归一化算法;随机森林
人工智能·算法·机器学习
黑仔要睡觉1 小时前
Anaconda和Pycharm的卸载
开发语言·python
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——丢失的数字
数据结构·算法·leetcode·结构与算法