c#委托学习笔记1

委托三步骤

第一步:定义委托

//第一步:1 声明委托(定义委托)
//对于声明委托的解释如下:
//解释a:函数指针
//解释b:委托就是定义函数的形状(形态)
//       即:返回值类型,参数数量,参数类型public delegate string delegatCeshi(int x,int y);

第二步:实例化

 //第二步:2 实例化委托delegatCeshi delCeshi = new delegatCeshi(add);

第三步:执行委托

//第三步:3 使用委托
this.Text = delCeshi(10,5).ToString();

参考链接

参考链接1

C#基础教程 delegate 帮你理解委托,知道委托的好处, 不懂委托一定要看下!_哔哩哔哩_bilibili

 参考链接2

C# 的委托与事件大致是怎么一回事_哔哩哔哩_bilibili

 参考链接3

C#基础教程 简单好用泛型委托Action与Func,7分钟学会,不容错过!_哔哩哔哩_bilibili

 测试实例

实例思路

实力执行效果

调用add方法 15
调用jian方法 5
调用 除法 方法 2
调用add方法 103
调用jian方法 97
调用 除法 方法 33
调用add方法 8
调用jian方法 2

示例代码

对应的详细代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//第一步:1 声明委托(定义委托)//对于声明委托的解释如下://解释a:函数指针//解释b:委托就是定义函数的形状(形态)//       即:返回值类型,参数数量,参数类型public delegate string delegatCeshi(int x,int y);private void button1_Click(object sender, EventArgs e){//第二步:2 实例化委托delegatCeshi delCeshi = new delegatCeshi(add);delCeshi += new delegatCeshi(jian);delCeshi += new delegatCeshi(chufa);//第三步:3 使用委托this.Text = delCeshi(10,5).ToString();//第二次使用未退哦button1.Text = delCeshi(100,3).ToString();//实例化第二个委托对象delegatCeshi ab = new delegatCeshi(add);ab += jian; // 可以使用new关键字,不写new是为了简写richTextBox1.AppendText(ab(5,3).ToString());}private string chufa(int a, int b){Debug.WriteLine("调用 除法 方法 " + (a / b));return (a / b).ToString();}private string jian(int m, int n){Debug.WriteLine("调用jian方法 " + (m - n));return (m - n).ToString();}private string add(int u, int t){Debug.WriteLine("调用add方法 "+(u + t));return (u + t).ToString();   }}
}

特此记录

anlog

2023年12月22日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/296765.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.svn版本管理工具使用

1. 什么是SVN 版本控制 它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节! Subversion(简称SVN)是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空 SVN的优势 统一的版本号 Subversi…

XG-PON的传输受限距离如何计算

1 概述 《ODN光纤链路全程衰减如何计算》一文介绍了ODN光纤链路全程衰减的计算方法。ODN光纤链路的全程衰减A需小于PON允许的最大通道插入损耗P,并预留一定的线路维护余量M,如式1所示。 P ≥ A + M (式1&…

用C求斐波那契数列-----(C每日一编程)

斐波那契数列: 斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。 递推…

Lambda表达式超详解

目录 背景 Lambda表达式的用法 函数式接口 Lambda表达式的基本使用 语法精简 变量捕获 匿名内部类 匿名内部类中的变量捕获 Lambda的变量捕获 Lambda表达式在类集中的使用 Collection接口 List接口 Map接口 总结 背景 Lambda表达式是Java SE 8中的一个重要的新特性.…

操作系统--磁盘存储器的管理

目录 8.1 外存的组织方式 常用的外存分配方法: 8.1.1 连续组织方式 连续组织方式的主要优点有: 连续组织方式的主要缺点如下: 8.1.2 链接组织方式 链接组织方式的主要优点是: 1. 隐式链接 2. 显式链接 8.1.3 FAT和NTFS技术 文…

[Linux] Mysql数据库中的用户管理与授权

一、登录用户的管理 1.1 查看用户密码的信息 用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。 use mysql ; show tables; desc user; 查看密码信息的命令: 能看到密码信息:是经过加…

java中线程相关的面试题

什么是线程安全,造成线程安全的本质是什么? 什么是线程安全呢? 咱们初步去理解话记住一句话就行:如果一个对象可以安全地被多个线程同时使用,那它就是线程安全的。 为什么并发编程会导致线程不安全? 可见…

YOLOv8改进 | 主干篇 | 利用SENetV1改进网络结构 (ILSVRC冠军得主)

一、本文介绍 本文给大家带来的改进机制是SENet(Squeeze-and-Excitation Networks)其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何一个模型相结合的模块(可以看作是一…

每日一题——LeetCode859

方法一 个人方法: 首先s和goal要是长度不一样或者就只有一个字符这两种情况可以直接排除剩下的情况s和goal的长度都是一样的,s的长度为2也是特殊情况,只有s的第一位等于goal的第二位,s的第二位等于goal的第一位才能满足剩下的我们…

全网功能最全、界面最美的年会抽奖源码合集

文章目录 1️⃣ 年会抽奖平台源码1.1 html5实现最震撼公司年会抽奖1.2 html实现好看的年会抽奖1.3 年会活动html酷炫抽奖功能1.4 星空版的九宫格酷炫抽奖HTML源码1.5 html实现名字滚动年会抽奖(附源码)1.6 html实现酷炫的公司年会抽奖(附源码)1.7 html5实现最高端的公司年会抽奖…

AntDesignBlazor示例——Modal表单

本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考。 示例代码仓库:https://gitee.com/known/BlazorDemo 1. 学习目标 创建Modal表单编辑数据创建Table操作列 2. 创建Modal表单 1)新增按钮和Modal组件 …

掌握iText:轻松实现固定pdf模板的动态数据填充

推荐语 如果你在工作中需要处理大量的PDF表单,那么使用iText5实现固定PDF模板的动态数据填充,将是一种非常有效的方法。这篇技术文章详细介绍了如何使用iText5库来读取已有的PDF模板,并动态地填充表单数据,生成最终的表单文件。通…