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

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

相关推荐
一线码农8 分钟前
MinHook 如何对 .NET 母体 CoreCLR 进行拦截
c#·.net·代码注入
【ql君】qlexcel20 分钟前
Notepad++ 复制宏、编辑宏的方法
开发语言·javascript·notepad++··宏编辑·宏复制
爱思德学术26 分钟前
中国计算机学会(CCF)推荐学术会议-B(交叉/综合/新兴):BIBM 2025
算法
Zevalin爱灰灰29 分钟前
MATLAB GUI界面设计 第六章——常用库中的其它组件
开发语言·ui·matlab
冰糖猕猴桃37 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
lifallen1 小时前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
wt_cs1 小时前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
风铃喵游1 小时前
构建引擎: 打造小程序编译器
前端·小程序·架构
_WndProc1 小时前
【Python】Flask网页
开发语言·python·flask
liujing102329292 小时前
Day04_刷题niuke20250703
java·开发语言·算法