当前位置: 首页 > news >正文

【.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基础加强第八课--委托 委托&#xff08;Delegate&#xff09;委托操作顺序实例多播委托—委托链实例实例委托传值 委托&#xff08;Delegate&#xff09; 委托&#xff08;Delegate&#xff09; 是存有对某个方法的引用的一种引用类型变量 委托操作顺序 1,定义一个委托类…...

jetcache:阿里这款多级缓存框架一定要掌握

0. 引言 之前我们讲解了本地缓存ehcache组件&#xff0c;在实际应用中&#xff0c;并不是单一的使用本地缓存或者redis&#xff0c;更多是组合使用来满足不同的业务场景&#xff0c;于是如何优雅的组合本地缓存和远程缓存就成了我们要研究的问题&#xff0c;而这一点&#xff…...

干货 | 如何做一个简单的访谈研究?

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 心理学中研究中&#xff0c;大家常用的研究方法大多是实验法、问卷调查法等&#xff0c;这些均是定量研究。 其实&#xff0c;作为质性研究中常用的访谈法&#xff0c;可对个体的内心想法进…...

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…...

基于遗传算法优化的核极限学习机(KELM)分类算法-附代码

基于遗传算法优化的核极限学习机(KELM)分类算法 文章目录 基于遗传算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于遗传算法优化的KELM4.测试结果5.Matlab代码 摘要&#xff1a;本文利用遗传算法对核极限学习机(KELM)进行优化&#xff0c;并用于分类 1.KE…...

评判需求优先级5大规则和方法(纯干货):

在划分用户需求时&#xff0c;需秉承需求任务紧跟核心业务指标&#xff0c;按照一定的规则和方法进行优先级的划分。 常见评判需求优先级规则有&#xff1a;四象限法则、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 有一种数字&#xff0c;我们称它为 纯真数。 它等于自身每一个数位的阶乘之和。请你求出不超过n的所有 纯真数。(注&#xff1a;纯真数不含有前导0&#xff09;数据范围1e18 纯真数只有四个&#xff0c;注意0!1 1,2,145,40585 int n;cin>>n;int res[]{…...

如何使用 YOLOv8 神经网络检测图像中的物体

对象检测是一项计算机视觉任务,涉及识别和定位图像或视频中的对象。它是许多应用的重要组成部分,例如自动驾驶汽车、机器人和视频监控。 多年来,已经开发了许多方法和算法来查找图像中的对象及其位置。执行这些任务的最佳质量来自使用卷积神经网络。 YOLO 是这项任务最流行的…...

Python每日一练:小艺读书醉酒的狱卒非降序数组(详解快排)

文章目录 前言一、小艺读书二、醉酒的狱卒三、非降序数组总结 前言 今天这个非降序数组&#xff0c;阅读解理小学水平&#xff0c;说起来都是泪啊。我折腾了一天都没搞定&#xff0c;从冒泡写到快速排序。换了几种都还不行&#xff0c;我又给快排加上插入排序。结果还是不能全…...

手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能

手麻系统源码&#xff0c;PHP手术麻醉临床信息系统源码&#xff0c;手术前管理模块功能 术前管理模块主要有手术排班、手术申请单、手术通知单、手术知情同意书、输血血液同意书、术前查房记录、术前访视、风险评估、手术计划等功能。 功能&#xff1a; 手术排班&#xff1a;…...

AUTOSAR - ComM - 学习一 :基础知识+配置

目录 1、概述 1.1、总览 1.2、功能描述 1.3、依赖关系 2、功能SPEC 2.1、PNC...

手把手教你搭建ROS阿克曼转向小车之(增量式PID代码实现)

在上一篇文章中我们已经成功的把编码器的反馈值给计算出来&#xff0c;这篇文章将会讲解怎么使用反馈回来的速度值进行PID计算&#xff0c;从而闭环控制电机的速度。 PID算法介绍 1.开环控制系统 开环控制系统(open-loop control system)是指被控对象的输出(被控制量)对控制器…...

C语言函数大全-- t 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- t 开头的函数 1. tan&#xff0c;tanf&#xff0c;tanl 1.1 函数说明 函数声明函数功能double tan(double x)计算 以弧度 x 为单位的角度的正切值&#xff08;double&#xff09;float tanf(float x)计算 以弧度 x 为单位的角度的正…...

安卓系统APP稳定性测试分析的研究报告

目录 第一章&#xff1a;概念 第二章&#xff1a;重要性 第三章&#xff1a;意义和作用 第四章&#xff1a;行业现状 第五章&#xff1a;常见测试方法和工具 第六章&#xff1a;实际测试场景 第七章&#xff1a;测试方案 第八章&#xff1a;测试方法 第九章&#xff1…...

【Java基础】集合

一、集合概述 为了方便对多个对象进行存储和操作&#xff0c;集合是一种Java容器&#xff0c;可以动态地把多个对象引用放入容器中 数组存储的特点 一旦初始化后&#xff0c;长度不可改变&#xff0c;元素类型不可改变提供的方法很少&#xff0c;对于添加、删除、获取实际元…...

【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系列发布时间&#xff1a; 先贴一下yolo各系列的发布时间&#xff08;说出来很丢人&#xff0c;我以为 yolox是 最新的&#xff09;&#xff1a; yoloX 2…...

前端009_类别模块_修改功能

第九章 1、需求分析2、Mock添加查询数据3、Mock修改数据4、Api调用回显数据5、提交修改后的数据6、效果1、需求分析 需求分析 当点击 编辑 按钮后,弹出编辑窗口,并查询出分类相关信息进行渲染。修改后点击 确定 提交修改后的数据。 2、Mock添加查询数据 请求URL: /article/…...

2022级吉林大学面向对象第一次上机测试

【注&#xff1a;解答全部为本人所写&#xff0c;仅供同学们学习时参考使用&#xff0c;请勿照搬抄袭&#xff01;】 1、 1&#xff09;略 2&#xff09;如果main,f1,g1,g2或更多的函数之间有更为复杂的调用关系&#xff0c;头文件一般按怎样的规律写呢&#xff1f; 一般情况下…...

NEURAL MASK 开发避坑指南:解决部署中常见的403 Forbidden等网络问题

NEURAL MASK 开发避坑指南&#xff1a;解决部署中常见的403 Forbidden等网络问题 最近在星图GPU平台上折腾NEURAL MASK服务&#xff0c;发现不少朋友在部署和调用时&#xff0c;总会遇到一些让人头疼的网络和权限问题。比如镜像死活拉不下来&#xff0c;或者好不容易部署好了&…...

Ollama+GPT-OSS-20B黄金组合:无需网络,随时可用的智能助手

OllamaGPT-OSS-20B黄金组合&#xff1a;无需网络&#xff0c;随时可用的智能助手 1. 为什么需要本地化AI助手 在当今AI技术快速发展的时代&#xff0c;云端AI服务虽然方便&#xff0c;但也存在诸多限制&#xff1a;网络依赖、隐私担忧、API费用高昂、响应延迟等问题。对于需要…...

Clawdbot汉化版企业微信入口教程:5分钟搭建专属AI助手,小白也能搞定

Clawdbot汉化版企业微信入口教程&#xff1a;5分钟搭建专属AI助手&#xff0c;小白也能搞定 1. 为什么选择Clawdbot汉化版&#xff1f; Clawdbot汉化版是一个完全本地化的AI对话系统&#xff0c;它解决了企业用户最关心的三个核心问题&#xff1a; 数据安全&#xff1a;所有…...

信号与系统核心知识点全解析

1.1 连续时间与离散时间信号1. 连续时间信号记为 x(t)自变量 t 取全体实数&#xff0c;在整个时间轴上都有定义图形是连续曲线2. 离散时间信号记为 x[n]自变量 n 只能取整数&#xff1a;…,−2,−1,0,1,2,…也叫序列&#xff0c;图形是一系列离散点离散信号可由连续信号采样得到…...

用rosbags工具5分钟搞定ROS1/ROS2数据包转换(含自定义消息处理技巧)

5分钟极速转换ROS1/ROS2数据包&#xff1a;rosbags工具高阶实战指南 在机器人开发领域&#xff0c;数据包的兼容性问题一直是开发者面临的痛点。当我们需要在ROS1和ROS2之间迁移项目时&#xff0c;传统方法往往需要复杂的桥接配置和漫长的等待时间。今天要介绍的rosbags工具&am…...

OpenClaw批量处理:用SecGPT-14B同时分析百个可疑文件

OpenClaw批量处理&#xff1a;用SecGPT-14B同时分析百个可疑文件 1. 为什么需要批量安全分析 去年处理一个恶意软件分析项目时&#xff0c;我遇到了一个典型困境&#xff1a;手头有237个待分析样本&#xff0c;每个都需要执行基础静态分析、行为特征提取和威胁评分。如果手动…...

Linux IO调度器详解与性能优化指南

1. Linux IO调度器概述作为一名长期从事Linux系统调优的工程师&#xff0c;我经常需要面对磁盘IO性能优化的问题。今天我想和大家深入探讨Linux内核中的四大IO调度算法&#xff0c;这些算法直接影响着系统的IO性能表现。现代计算机系统中&#xff0c;磁盘IO往往是性能瓶颈所在。…...

手把手教你开发电竞护航系统:从零到上线的小程序全流程

手把手教你开发电竞护航系统&#xff1a;从零到上线的小程序全流程 电竞产业近年来呈现爆发式增长&#xff0c;职业选手和游戏爱好者对专业服务的需求与日俱增。一款优秀的电竞护航小程序不仅能提供赛事资讯、战队管理、训练计划等基础功能&#xff0c;更能通过智能算法为玩家匹…...

【2026年最新600套毕设项目分享】springboot智能民宿预定与游玩系统(14340)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

实战指南:基于快马平台生成企业级cc switch管理系统,助力游戏项目开发

今天想和大家分享一个在游戏开发中特别实用的技术——CC Switch系统。这个系统在商业游戏项目中经常被用来做调试和功能开关控制&#xff0c;最近我在InsCode(快马)平台上快速实现了一个完整的企业级解决方案&#xff0c;整个过程特别顺畅。 先说说什么是CC Switch。简单理解就…...