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

C#学习系列之事件

C#学习系列之事件

  • 前言
  • 事件
    • 发布者和订阅者
    • 事件触发和注册
    • 事件声明
    • 事件订阅
    • 事件触发
    • 使用
  • 总结


前言

基础学习。

事件

发布者和订阅者

发布者:通知某件事情发生的。
订阅者:对某件事情关注的。

事件触发和注册

触发:事件发生就通知所有关注该事件的订阅者。
注册:想要得到通知,必须注册并关注。

事件发生时,通知订阅者,调用订阅者的注册函数。

事件声明

delegate void Handler();
public event Handler NewDog;//NewDog是一个成员,会被隐式自动初始化为null
//这里的Handler为委托类型,NewDog为事件名
//这里常会出现问题,应该注意!!!

事件订阅

NewDog+=方法
NewDog-=方法
//方法可以是实例方法、静态方法、匿名方法、lambda表达式

事件触发

封装的受限制的委托。

if(NewDog!=null)
{NewDog();}

使用

public class Dog:Pet
{static int Num;public delegate void Handler();public static event Handler NewDog;static Dog(){Num=0;}public Dog(string name):base(name){++Num;if(NewDog!=null){NewDog();}}
}
class Client
{public void WantADog(){Console.WriteLine("xx");}
}Client c1=new Client();
Client c2=new Client();
Dog.NewDog+=c1.WantADog;//相当于把Client的方法赋给事件了
Dog.NewDog+=c2.WantADog;
Dog dog=new Dog("Q");//最后事件打印出来会显示xx

总结

学习记录。
https://www.imooc.com/video/14246/0

相关文章:

C#学习系列之事件

C#学习系列之事件 前言事件发布者和订阅者事件触发和注册事件声明事件订阅事件触发使用 总结 前言 基础学习。 事件 发布者和订阅者 发布者:通知某件事情发生的。 订阅者:对某件事情关注的。 事件触发和注册 触发:事件发生就通知所有关…...

list部分接口模拟实现(c++)

List list简介list基本框架list构造函数list_node结构体的默认构造list类的默认构造 push_back()iteartor迭代器迭代器里面的其他接口const迭代器通过模板参数实现复用operator->() insert()erase()clear()析构函数迭代器区间构造拷贝构造operator() list简介 - list可以在…...

数据结构(C语言) 实验-栈与字符串

删除子串 字符串采用带头结点的链表存储,设计算法函数void delstring(linkstring s, int i,int len) 在字符串s中删除从第i个位置开始,长度为len的子串。 void delstring(linkstring s, int i, int len) {linkstring p,q,r;int cnt 1;p s->next;wh…...

xLua Lua访问C#注意事项(七)

调用成员方法 注意:调用成员方法,第一个参数需要传该对象,建议用冒号语法 loacl camera CS.UnityEngine.GameObject.Find("Main Camera") --冒号语法 camera:GetComponent("Camera") --点语法 camera.GetComponent(camera,"…...

vue3+antv2.x的画布

报错信息: TypeError: Cannot destructure property component of registry_1.shapeMaps[node.shape] as it is undefined. at VueShapeView.renderVueComponent (http://192.168.10.35:9029/node_modules/.vite/deps/antv_x6-vue-shape.js?v49fbfab0:5569:19…...

Docker部署ubuntu1804镜像详细步骤

Docker部署ubuntu1804镜像详细步骤 ubuntu镜像库地址:https://hub.docker.com/_/ubuntu/tags?page1&ordering-name 拉取镜像(默认为最新版本): docker pull ubuntu或,拉取指定版本镜像: docker pull…...

mac 卸载第三方输入法

输入法设置里的移除,并不是真的卸载,点击还是能添加回来 在活动监视器里强制退出此输入法在访达界面使用快捷键 ShiftcommandG在弹出的对话框内输入以下路径(/资源库/Input Methods),再点击下面的前往找到你要卸载的输…...

可观察性在软件测试中的重要性

当今应用生态系统的需求和加速的数字化转型使可观察性成为人们关注的焦点。可观察性提供了对应用程序行为和技术生态系统的深入可见性,并支持更快、更明智的决策。由于缺乏可观察性,软件开发团队倾向于对生产系统行为、潜在性能瓶颈或未来故障场景做出假…...

Delphi TCP服务端监听端口获取客户端RFID网络读卡器上传的刷卡数据

本示例使用设备介绍:液显WIFI无线网络HTTP协议RFID云读卡器可编程实时可控开关TTS语-淘宝网 (taobao.com) unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ComCtrls, ScktComp, StdCtrls, ScktCom…...

javaSE学习笔记(一)概述、语法

目录 前言 一、概述 1.java语言发展史 2.Java语言版本 3.Java语言平台 4.Java语言特点 5.Java语言跨平台原理-可移植性 6.JRE和JDK的概述 7.JDK的下载和安装 7.1安装的细节 7.2可能出现的问题 7.3验证安装是否成功 8.JDK安装路径下的目录解释 9.path环境变量的作…...

接口开发之使用C#插件Quartz.Net定时执行CMD任务工具

C#制作定时任务工具执行CMD命令 概要准备知识点实现原理thinkphp配置winform执行CMD命令读取ini配置文件定时任务Quartz.Net 完整代码Job.csIniFunc.csForm1.csconfig.ini简易定时任务工具雏形 概要 很多时候写接口上线后还会遇到很多修改,类似JAVA,C#,delphi制作的…...

XSS脚本(存储型xss获取肉鸡的cookies)

XSS脚本(存储型xss获取肉鸡的cookies) 存储型XSS就是在能够提交上传的文本框中提交一些标签代码,这段代码被插入到页面中,肉鸡每次点击这个页面时都会有弹框弹出。(只要点击就会弹框) 反射性XSS顾名思义插入…...

【React】04.MVC模式和MVVM模式

React是Web前端框架 1、目前市面上比较主流的前端框架 ReactAngular(NG框架)Vue 主流的思想: 不在直接去操作DOM,而是改为“数据驱动思想” 操作DOM思想: 操作DOM比较消耗性能[主要原因就是,可能会导…...

调试代码0

dev_update_off () * read_image (Image, C:/Users/Public/Documents/MVTec/HALCON-12.0/examples/images/smd/smd_on_chip_01.png) read_image (Image, D:/图像文件/图片/图片/基板/20230609-103004-0.bmp) get_image_size (Image, Width, Height) * dev_close_window () * de…...

【C++心愿便利店】No.12---C++之探索string底层实现

文章目录 前言一、写实拷贝(了解)二、string类常用接口实现2.1 成员变量2.2 默认构造函数2.3 拷贝构造函数2.4 operator2.5 operator[]2.6 c_str2.7 size()2.8 capacity() 三、迭代器的实现3.1 begin()和end()3.2 范围for 四、string类增删查改4.1 reser…...

Android Studio(列表视图ListView)

前言 前面在适配器章节&#xff0c;已经介绍了ListView的作用(干什么的)&#xff0c;这节将主要介绍如何去设计ListView页面视图。 思考 列表视图需要些什么&#xff1f; 1. 列表项容器&#xff08;装载各列表项的容器&#xff09;&#xff1a;<ListView/> 2. 列表项布局…...

让深度神经网络绘画以了解它们是如何工作的

一、说明 深度学习如此有效&#xff0c;这真是一个谜。尽管有一些关于深度神经网络为何如此有效的线索&#xff0c;但事实是没有人完全确定&#xff0c;并且深度学习的理论理解是一个非常活跃的研究领域。 在本教程中&#xff0c;我们将以一种不寻常的方式触及问题的一个小方面…...

https://www.jianshu.com/p/34bf240b85a9

https://www.jianshu.com/p/34bf240b85a9 https://www.eccee.com/soft-platform/991.html...

如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?

期刊投稿的时候&#xff0c;需要图片保持一定的清晰度数&#xff0c;那么我们怎么才能从PPT中导出符合要求的图片呢&#xff1f; 对于矢量图绘图软件所画的图&#xff0c;直接导出即可。 而PPT导出的图片清晰度在60pi&#xff0c;就很模糊。 整体思路&#xff1a; PPT绘图——…...

【Spring】Spring IOC DI

Spring IOC & DI IOC DI入门什么是Spring什么是容器什么是IOC IOC介绍传统程序开发解决方案 DI IOC详解Bean的存储Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储)Configuration(配置存储) 为什么需要这么多类注解类注解之间的关系方法注…...

告别命令行恐惧:在Ubuntu 22.10上用VS Code 1.75优雅地配置ns-3.37开发环境

告别命令行恐惧&#xff1a;在Ubuntu 22.10上用VS Code 1.75优雅地配置ns-3.37开发环境 第一次打开Ubuntu终端时&#xff0c;黑色窗口里闪烁的光标就像一道无法逾越的鸿沟。特别是当需要配置ns-3这类复杂网络模拟环境时&#xff0c;命令行操作往往让初学者望而生畏。但现代开发…...

Phi-mini-MoE-instruct企业落地:客服知识库问答+话术建议双模输出演示

Phi-mini-MoE-instruct企业落地&#xff1a;客服知识库问答话术建议双模输出演示 1. 项目概述 Phi-mini-MoE-instruct是一款轻量级混合专家&#xff08;MoE&#xff09;指令型小语言模型&#xff0c;专为企业级应用场景设计。该模型在多项基准测试中表现优异&#xff1a; 代…...

BabelDOC完整指南:5分钟实现智能PDF文档翻译与格式保留

BabelDOC完整指南&#xff1a;5分钟实现智能PDF文档翻译与格式保留 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC 在全球化协作日益频繁的今天&#xff0c;专业文档翻译已成为研究人员、工程师…...

NVIDIA AI Blueprints视频分析方案解析与应用实践

1. 视频分析新范式&#xff1a;NVIDIA AI Blueprints集成方案解析 在当今数据爆炸的时代&#xff0c;企业每天产生的视频内容正以惊人的速度增长。从零售门店的顾客行为分析&#xff0c;到工厂生产线的质量检测&#xff0c;再到医疗机构的远程会诊记录&#xff0c;视频数据中蕴…...

Phi-3-mini-4k-instruct-gguf Chainlit定制开发:添加Markdown渲染、代码高亮、复制按钮

Phi-3-mini-4k-instruct-gguf Chainlit定制开发&#xff1a;添加Markdown渲染、代码高亮、复制按钮 1. 项目概述 Phi-3-Mini-4K-Instruct是一个38亿参数的轻量级开源模型&#xff0c;采用GGUF格式提供。该模型经过专门训练&#xff0c;在常识理解、语言处理、数学推理、代码生…...

SAP Webservice发布后,用SoapUI和Postman做接口测试的完整流程与参数调试技巧

SAP Webservice接口测试全攻略&#xff1a;SoapUI与Postman实战指南 当你在SAP系统中成功发布了Webservice或RESTful服务后&#xff0c;真正的挑战才刚刚开始。如何确保这些接口能够稳定、高效地与外部系统对接&#xff1f;本文将带你深入SoapUI和Postman这两款业界主流测试工具…...

QMCDecode:macOS平台QQ音乐加密格式一键解密解决方案

QMCDecode&#xff1a;macOS平台QQ音乐加密格式一键解密解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转…...

拆开Hermes Agent:企业怎么自建一套会“越用越强”的AI Agent系统

如果你这段时间一直在看 Agent 项目&#xff0c;大概率绕不开 Hermes。 它真正吓人的&#xff0c;不只是“能跑命令、能改文件、能开浏览器”。 而是另一件事&#xff1a;它不是一个把大模型外面包了一层工具壳的玩具&#xff0c;而是一套已经把“记忆、技能、协作、执行、回…...

Unity3D游戏一键封装:使用Inno Setup打造专业Windows安装包

1. 为什么Unity游戏需要专业安装包&#xff1f; 当你用Unity3D开发完游戏并导出Windows版本时&#xff0c;会发现生成的文件结构相当混乱——一个.exe主程序、Data文件夹、MonoBleedingEdge运行时文件、各种DLL散落在目录里。这种原始输出方式存在三个致命问题&#xff1a; 首先…...

Intel RealSense深度相机终结:技术解析与替代方案

1. Intel RealSense深度相机产品线的终结与行业影响2022年对于计算机视觉和机器人领域的开发者而言是个转折点。作为在CES 2014年首次亮相的3D感知技术先驱&#xff0c;Intel RealSense系列深度相机即将退出历史舞台。这个消息最初由CRN披露&#xff0c;随后Intel官方确认将逐步…...