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

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

相关推荐
@木辛梓2 分钟前
Linux 线程
linux·开发语言·c++
apcipot_rain14 分钟前
CSP集训错题集 第八周 主题:基础图论
算法·图论
天选之女wow14 分钟前
【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
算法·图论
文火冰糖的硅基工坊26 分钟前
[人工智能-大模型-103]:模型层 - M个神经元组成的单层神经网络的本质
python·算法·机器学习
孤独的追光者30 分钟前
使用Qt Designer开发上位机
开发语言·python·qt
m0_7369270438 分钟前
Java面试场景题及答案总结(2025版持续更新)
java·开发语言·后端·职场和发展
muyouking1143 分钟前
Rust + WASM + Svelte 深度实战:内存管理、性能权衡与图像处理进阶
开发语言·rust·wasm
无语子yyds1 小时前
C++双指针算法例题
数据结构·c++·算法
仟濹1 小时前
「经典数字题」集合 | C/C++
c语言·开发语言·c++
Skrrapper1 小时前
【STL】set、multiset、unordered_set、unordered_multiset 的区别
c++·算法·哈希算法