C# 委托(Delegate)二

server/2024/12/22 23:59:10/

一.委托的多播(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)的用途 :

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

 


http://www.ppmy.cn/server/122752.html

相关文章

矿石运输船数据集、散货船数据集、普通货船数据集、集装箱船数据集、渔船数据集以及客船数据集

海船:用于船只检测的大规模精准标注数据集 我们很高兴地介绍一个新的大规模数据集——海船,该数据集专为训练和评估船只目标检测算法而设计。目前,这个数据集包含31,455张图像,并涵盖了六种常见的船只类型,包括矿石运…

linux网络编程5

24.9.21学习目录 一.TCP1.TCP流程2.TCP相关函数3.三次握手 一.TCP 1.TCP流程 服务器流程: 创建套接字socket()将套接字与服务器网络信息结构体绑定bind()将套接字设置为监听状态listen()阻塞等…

gin参数绑定panic错误分析

gin参数绑定panic错误分析 经过长期实践 func (e *SubscribeApi) FnExample(c *gin.Context) {//获取参数并检验var req *request.FnReqif err : c.ShouldBindQuery(&req); err ! nil {response.FailWithMsg(c, "Parameter validation error: "err.Error())retu…

django开发流程1

一、官方网站: Django documentation | Django documentation | Djangohttps://docs.djangoproject.com/en/5.1/ 1.安装 django : pip install django 2. django项目的配置文件 (settings.py) BASE_DIR 项目根路径 DEBUG 调试模式 INSTALLE…

【vue3】 自动引入实现

在vue3中用到ref、reactive等等时,我们总是需要引入组件然后使用,非常的麻烦,怎么能自动引入? 1.安装插件 插件(两个组件, 都是 antfu( vite 核心团队成员 ) 写的) npm i unplugin-auto-import unplugin-vue-components -D 使用…

Tomcat CVE-2017-12615 靶场攻略

漏洞描述 当 Tomcat运⾏在Windows操作系统时,且启⽤了HTTP PUT请求⽅法(例如,将 readonly初始化参数由默认值设置为false),攻击者将有可能可通过精⼼构造的攻击请求数据包向服务器上传包含任意代 的 JSP ⽂件&#xf…

linux ip命令使用

大家好&#xff0c;这里是大数据那点事儿&#xff0c;专注于大数据处理、高性能计算&#xff0c;平时也会分享干货、生活点滴感悟&#xff01; <section class"mp_profile_iframe_wrp"><mp-common-profile class"custom_select_card mp_profile_ifram…

使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤

长话短说&#xff1a; 准备好深入研究&#xff1a; 矢量存储的复杂性以及如何利用 Qdrant 进行高效数据摄取。掌握 Qdrant 中的集合管理以获得最佳性能。释放上下文感知响应的相似性搜索的潜力。精心设计复杂的 LangChain 工作流程以增强聊天机器人的功能。将革命性的 Llama …