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

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

相关推荐
晓纪同学1 小时前
QT-简单视觉框架代码
开发语言·qt
威桑1 小时前
Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
开发语言·qt·扩张策略
飞飞-躺着更舒服1 小时前
【QT】实现电子飞行显示器(简易版)
开发语言·qt
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程
开发语言·青少年编程·并发编程·编程与数学·goweb
明月看潮生1 小时前
青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
开发语言·青少年编程·编程与数学·goweb
Java Fans1 小时前
C# 中串口读取问题及解决方案
开发语言·c#
盛派网络小助手1 小时前
微信 SDK 更新 Sample,NCF 文档和模板更新,更多更新日志,欢迎解锁
开发语言·人工智能·后端·架构·c#
码农君莫笑1 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
Chinese Red Guest2 小时前
python
开发语言·python·pygame
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言