【.NET基础加强第八课--委托】
.NET基础加强第八课--委托
- 委托(Delegate)
- 委托操作顺序
- 实例
- 多播委托—委托链
- 实例
- 实例委托传值
委托(Delegate)
委托(Delegate) 是存有对某个方法的引用的一种引用类型变量
委托操作顺序
1,定义一个委托类型
2,声明了一个委托变量 并且new 了一个委托对象,并且把方法传进去
3,调用委托相当于调用了方法
实例
//2, 声明了一个委托变量 md ,并且new 了一个委托对象,并且把方法M1传进去
using System.Text;
using System.Text.RegularExpressions;
MyDelegate md = new MyDelegate(M1);
// 3, 调用md委托相当于调用了M1 方法;
while (true)
{
Console.WriteLine(“请输入一个邮箱”);
string email = Console.ReadLine();
email = Regex.Replace(email, @“(\w+)(@\w+.\w+)”, ReplaceMethod,
RegexOptions.ECMAScript);
}
Console.ReadKey();
static void M1()
{
Console.WriteLine(“M1方法”);
}
static string ReplaceMethod(Match match)
{
string uid = match.Groups[1].Value;
string others = match.Groups[2].Value;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < uid.Length; i++)
{
sb.Append(“*”);
}
return sb.ToString() + others;
}
//1. 定义一个委托类型,用来保存无参数,无返回值的方法
public delegate void MyDelegate();
public delegate void WriteTimeDelegate();
public class MyClass
{
}
多播委托—委托链
实例
Action action = M1;
//action(“tttt”);
action += M2;
action += M3;
action += M4;
action(“hello”);
Console.ReadKey();
static void M1(string msg)
{
Console.WriteLine(msg);
}
static void M2(string msg)
{
Console.WriteLine(msg);
}
static void M3(string msg)
{
Console.WriteLine(msg);
}
static void M4(string msg)
{
Console.WriteLine(msg);
}
实例委托传值
代码明细
Form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e){Form2 form2 = new Form2(textBox1.Text.Trim(),UpdateTextBox) ;form2.ShowDialog();}UpdateTextDelegate md = new UpdateTextDelegate(D1);static void D1(string value){}public void UpdateTextBox(string val){textBox1.Text = val;}private void Form1_Load(object sender, EventArgs e){}
}public delegate void UpdateTextDelegate(string val);
Form2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private UpdateTextDelegate _update;public Form2(string value,UpdateTextDelegate updateText):this(){this.textBox1.Text = value;this._update = updateText;}private void button1_Click(object sender, EventArgs e){// 将当前窗体中的文本框中的值传给 窗体1this._update(textBox1.Text.Trim());this.Close();}private void Form2_Load(object sender, EventArgs e){}
}
相关文章:
【.NET基础加强第八课--委托】
.NET基础加强第八课--委托 委托(Delegate)委托操作顺序实例多播委托—委托链实例实例委托传值 委托(Delegate) 委托(Delegate) 是存有对某个方法的引用的一种引用类型变量 委托操作顺序 1,定义一个委托类…...
jetcache:阿里这款多级缓存框架一定要掌握
0. 引言 之前我们讲解了本地缓存ehcache组件,在实际应用中,并不是单一的使用本地缓存或者redis,更多是组合使用来满足不同的业务场景,于是如何优雅的组合本地缓存和远程缓存就成了我们要研究的问题,而这一点ÿ…...
干货 | 如何做一个简单的访谈研究?
Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 心理学中研究中,大家常用的研究方法大多是实验法、问卷调查法等,这些均是定量研究。 其实,作为质性研究中常用的访谈法,可对个体的内心想法进…...
4年外包出来,5次面试全挂....
我的情况 大概介绍一下个人情况,男,毕业于普通二本院校非计算机专业,18年跨专业入行测试,第一份工作在湖南某软件公司,做了接近4年的外包测试工程师,今年年初,感觉自己不能够再这样下去了&…...
基于遗传算法优化的核极限学习机(KELM)分类算法-附代码
基于遗传算法优化的核极限学习机(KELM)分类算法 文章目录 基于遗传算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于遗传算法优化的KELM4.测试结果5.Matlab代码 摘要:本文利用遗传算法对核极限学习机(KELM)进行优化,并用于分类 1.KE…...
评判需求优先级5大规则和方法(纯干货):
在划分用户需求时,需秉承需求任务紧跟核心业务指标,按照一定的规则和方法进行优先级的划分。 常见评判需求优先级规则有:四象限法则、KANO模型、二八原则、产品生命周期法、ROI评估法。 一、四象限法则 四象限法则是以【重要】和【紧急】程度…...
c++ 11标准模板(STL) std::vector (七)
定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…...
Contest3137 - 2022-2023-2 ACM集训队每月程序设计竞赛(1)五月月赛
A 1! 5! 46 169 有一种数字,我们称它为 纯真数。 它等于自身每一个数位的阶乘之和。请你求出不超过n的所有 纯真数。(注:纯真数不含有前导0)数据范围1e18 纯真数只有四个,注意0!1 1,2,145,40585 int n;cin>>n;int res[]{…...
如何使用 YOLOv8 神经网络检测图像中的物体
对象检测是一项计算机视觉任务,涉及识别和定位图像或视频中的对象。它是许多应用的重要组成部分,例如自动驾驶汽车、机器人和视频监控。 多年来,已经开发了许多方法和算法来查找图像中的对象及其位置。执行这些任务的最佳质量来自使用卷积神经网络。 YOLO 是这项任务最流行的…...
Python每日一练:小艺读书醉酒的狱卒非降序数组(详解快排)
文章目录 前言一、小艺读书二、醉酒的狱卒三、非降序数组总结 前言 今天这个非降序数组,阅读解理小学水平,说起来都是泪啊。我折腾了一天都没搞定,从冒泡写到快速排序。换了几种都还不行,我又给快排加上插入排序。结果还是不能全…...
手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能
手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能 术前管理模块主要有手术排班、手术申请单、手术通知单、手术知情同意书、输血血液同意书、术前查房记录、术前访视、风险评估、手术计划等功能。 功能: 手术排班:…...
AUTOSAR - ComM - 学习一 :基础知识+配置
目录 1、概述 1.1、总览 1.2、功能描述 1.3、依赖关系 2、功能SPEC 2.1、PNC...
手把手教你搭建ROS阿克曼转向小车之(增量式PID代码实现)
在上一篇文章中我们已经成功的把编码器的反馈值给计算出来,这篇文章将会讲解怎么使用反馈回来的速度值进行PID计算,从而闭环控制电机的速度。 PID算法介绍 1.开环控制系统 开环控制系统(open-loop control system)是指被控对象的输出(被控制量)对控制器…...
C语言函数大全-- t 开头的函数
C语言函数大全 本篇介绍C语言函数大全-- t 开头的函数 1. tan,tanf,tanl 1.1 函数说明 函数声明函数功能double tan(double x)计算 以弧度 x 为单位的角度的正切值(double)float tanf(float x)计算 以弧度 x 为单位的角度的正…...
安卓系统APP稳定性测试分析的研究报告
目录 第一章:概念 第二章:重要性 第三章:意义和作用 第四章:行业现状 第五章:常见测试方法和工具 第六章:实际测试场景 第七章:测试方案 第八章:测试方法 第九章࿱…...
【Java基础】集合
一、集合概述 为了方便对多个对象进行存储和操作,集合是一种Java容器,可以动态地把多个对象引用放入容器中 数组存储的特点 一旦初始化后,长度不可改变,元素类型不可改变提供的方法很少,对于添加、删除、获取实际元…...
【Android入门到项目实战-- 9.1】—— 传感器的使用教程
目录 传感器的定义 三大类型传感器 1、运动传感器 2、环境传感器 3、位置传感器 传感器开发框架 1、SensorManager 2、Sensor 3、SensorEvent 4、SensorEventListener 一、使用传感器开发步骤 1、获取传感器信息 1)、获取传感器管理器 2)、获取设备的传感器对象列…...
yolov8 浅记
目录 Pre: 1. YOLOv8 概述 2. 模型结构设计 3. Loss 计算 4.训练数据增强 5. 训练策略 6、部署推理 End Pre: yolo系列发布时间: 先贴一下yolo各系列的发布时间(说出来很丢人,我以为 yolox是 最新的): yoloX 2…...
前端009_类别模块_修改功能
第九章 1、需求分析2、Mock添加查询数据3、Mock修改数据4、Api调用回显数据5、提交修改后的数据6、效果1、需求分析 需求分析 当点击 编辑 按钮后,弹出编辑窗口,并查询出分类相关信息进行渲染。修改后点击 确定 提交修改后的数据。 2、Mock添加查询数据 请求URL: /article/…...
2022级吉林大学面向对象第一次上机测试
【注:解答全部为本人所写,仅供同学们学习时参考使用,请勿照搬抄袭!】 1、 1)略 2)如果main,f1,g1,g2或更多的函数之间有更为复杂的调用关系,头文件一般按怎样的规律写呢? 一般情况下…...
计算机体系结构总结:内存一致性模型 Memory consistency Model
存储一致性是为了保证多线程背景下的访存顺序,多线程的语句是可以交错执行,使得顺序不同产生不同的执行结果。 下面P2的输出结果可能是什么? P1, P2两个线程的语句是可以交叉执行的,比如1a, 2a, 2b, 1b;一个线程内的语…...
高速列车运行控制系统(CTCS)介绍
1、CTCS功能 安全防护 在任何情况下防止列车无行车许可运行防止列车超速运行防止列车超过进路允许速度防止列车超过线路结构规定的速度防止列车超过机车车辆构造速度防止列车超过临时限速及紧急限速防止列车超过铁路有关运行设备的限速防止列车溜逸 人机界面 以字符、数字及…...
C#“System.Threading.ThreadStateException”类型的未经处理的异常
备忘 最近做一个功能,从主界面进入另一个界面时,数据量较大,处理信息较多,程序宕机。而且点击程序还会提示程序无响应。不得已用另一个线程显示界面。但在界面中使用控件时,报错:“System.Threading.Thread…...
为什么要交叉编译?
一、什么是交叉编译、为什么要交叉编译 1、什么是交叉编译? 交叉编译:是在一个平台上生成另一个平台上的可执行代码。比如我们在 x86 平台上,编写程序并编译成能运行在 ARM 平台的程序,编译得到的程序在 x86 平台上是不能运行的…...
java版本电子招标采购系统源码—企业战略布局下的采购
智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明࿰…...
【MATLAB数据处理实用案例详解(17)】——利用概念神经网络实现柴油机故障诊断
目录 一、问题描述二、利用概念神经网络实现柴油机故障诊断原理三、算法步骤3.1 定义样本3.2 样本归一化3.3 创建网络模型3.4 测试3.5 显示结果 四、运行结果五、完整代码 一、问题描述 柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大…...
神奇字符串、密钥格式化----2023/5/6
神奇字符串----2023/5/6 神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成,并需要遵守下面的规则: 神奇字符串 s 的神奇之处在于,串联字符串中 ‘1’ 和 ‘2’ 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。…...
STM32F4_十进制和BCD码的转换
目录 前言 1. BCD码 2. BCD码和十进制转换的算法 前言 最近在学习STM32单片机(不仅仅是32)的RTC实时时钟系统的过程中,需要配置时钟的时间、日期;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之…...
random — 伪随机数生成器(史上总结最全)
目的:实现几种类型的伪随机数生成器。 random 模块基于 Mersenne Twister 算法提供了一个快速的伪随机数生成器。Mersenne Twister 最初开发用于为蒙特卡洛模拟器生成输入,可生成具有分布均匀,大周期的数字,使其可以广泛用于各种…...
基于VBA实现成绩排序的最佳方法-解放老师的双手
作为一名老师,每到期末就要面对一件让人头疼的事情——成绩表统计。 首先,要收集每个学生的考试成绩。这需要花费大量的时间和精力,因为每个学生都有多门科目的成绩需要统计。 其次,要将每个学生的成绩录入到电子表格中。这看起来…...
专业做外贸网站/百度如何发布信息推广
KeyShot Pro 11可以让您在几分钟内渲染图像。通过提供许多高级功能和即时实时反馈的简单界面,您可以在专注于设计的同时节省时间。下面为您带来了KeyShot Pro 11入门,只要讲述如何选择环境渲染图像。 首先安装KeyShot Pro 11 第 1 步:导入您…...
重庆高端网站建设价格/苏州百度推广服务中心
ML Compute 使用CPU和GPU加速神经网络的训练和验证。 教程 使用ML Compute框架来加速跨CPU或一个或多个可用GPU的神经网络训练。 ML Compute利用Accelerate框架为CPU提供的高性能BNNS基元,为GPU提供了Metal Performance Shaders 推荐 基础文章推荐 《SwiftUI是什么&…...
网站建设那家好/如何注册一个平台
MNIST数据集介绍 MNIST数据集官网:http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集,就像你学编程起初写一个“Hello Word”的程序一样,学Deep Learning你就会写识别MNIST数据集的Model。 MNIST数据集是由0〜9手写数字图…...
wordpress 子页面/优化设计单元测试卷答案
RMI方式的调用,如:rmi://10.20.134.140:2099/DataServer 1.Java RMI 简介 RMI(Remote Method Invocation),RMI是分布式对象软件包,它简化了在多台计算机上的JAVA应用之间的通信。 必须在jdk1.1以上&#…...
宽屏企业网站源码/一站式媒体发稿平台
每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底就光了。都说理财从记账开始,小编我用过很…...
同性男做的视频网站/网络推广外包联系方式
PCI DSS包括对POS终端安全的要求。在本文中,专家Mike Chapple将解释如何理解PCI对于POS终端的要求,并就此的最佳安全实践给出建议。 关于PCI对POS终端的要求我十分忧虑,因为我很难找到合适的方式来保障公开锁着的POS系统抽屉的物理钥匙的安全…...