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

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

相关推荐
CopyCode5 小时前
用 AI 迁项目有多爽?我把 Webpack 迁 Vite 的全过程记下来了
前端·架构
美好世界5 小时前
Codex 源码导读:第五部分——事件出口与多入口适配
架构
初学AI的小高5 小时前
LangGraph断点恢复与幂等执行实战
后端·架构
用户979984807185 小时前
200 行代码写一个能跑的 AI Agent:不依赖任何框架,只靠 tool-calling 原理
算法
美好世界5 小时前
Codex 源码导读:第四部分——上下文压缩与继续执行
架构
美好世界5 小时前
Codex 源码导读:第十部分——Session、Thread 持久化与 Memory
架构
据说幸运很容易5 小时前
TestNG 分组接入现有框架:实现、踩坑与解法
后端·架构
farerboy5 小时前
WEB 项目如何禁用 F12 等功能
前端·vue.js·架构
美好世界5 小时前
Codex 源码导读:第六部分——模型请求与流式网络层
架构
美好世界5 小时前
Codex 源码导读:第三部分——沙箱真实执行
架构