首页 > 编程语言 >C#委托

C#委托

时间:2024-05-11 16:20:50浏览次数:28  
标签:异步 调用 委托 C# myDelegate 方法

目录

C# 委托

委托是什么?

** 委托定义一种类型,该类型封装一个或多个方法(一个或多个方法指向委托实例)。**
委托是一种指向方法的引用。它允许您将方法存储在变量中,并像调用普通方法一样调用它们。委托通常用于事件处理 和异步编程。

基本语法

  1. 定义委托类型。
    public delegate <返回值类型> 委托名(<参数类型列表>);
  private  delegate string MyDelegate(string str);
  1. 创建委托实例(变量)。
    <委托类型> 委托变量名;
  MyDelegate myDelegate = MyMethod;
  1. 调用实例,执行方法。委托变量名(参数1, 参数2, ...);
myDelegate("Hello World!")
  1. 委托链(多播委托) 。调用实例后会执行多个方法。
MyDelegate myDelegate = MyMethod;
myDelegate += MyMethod2; //委托链(多播),先调用 MyMethod,在调用 MyMethod2

委托的常见用法

事件处理:事件通常使用委托来表示。当事件发生时,委托将调用所有已注册的事件处理程序。

异步编程:异步方法通常使用委托来表示回调方法。当异步操作完成时,回调方法将被调用。

数据转换:委托可用于将一种类型的数据转换为另一种类型。

总结

委托是 C# 中一项强大的功能,可用于提高代码的可重用性、可读性和灵活性。您应该在代码中尽可能使用委托。

引用

  1. 博文示例代码 https://github.com/chi8708/DotNetNote/blob/master/Note.Basic/04Delegate.cs

  2. 参考文献

标签:异步,调用,委托,C#,myDelegate,方法
From: https://www.cnblogs.com/chi8708/p/18186705

相关文章

  • 双核、DSPIC33CH128MP203-I/M5 DSPIC33CH128MP203-H/M5 DSPIC33CH128MP203-E/M5数字信
    产品简介dsPIC33CH双核数字信号控制器在单个芯片中集成了两个dsPICDSC内核,一个设计用作主器件,而另一个则设计用作从器件。从内核用于执行专用、时间关键型控制代码,而主内核则用于运行用户界面、系统监测和通信功能以及最终应用的定制。dsPIC33CH器件优化用于高性能数字电源、电......
  • ReentrantLock分为公平锁和非公平锁,那底层分别是如何实现的
    ReentrantLock在Java中是通过AbstractQueuedSynchronizer(AQS)框架实现的,它提供了公平锁(FairSync)和非公平锁(NonfairSync)两种模式。这两种锁的实现主要区别在于获取锁的策略。importjava.util.concurrent.locks.ReentrantLock;publicclassReentrantLockDemo{//非公平......
  • 用友U8 Cloud smartweb2.RPC.d 存在XXE漏洞
    用友U8Cloud漏洞复现1.Cloudsmartweb2.RPC.d存在XXE漏洞漏洞描述用友U8Cloudsmartweb2.RPC.d存在xml外部实体注入漏洞,攻击者可以通过此漏洞读取系统文件,获取敏感信息等。fofa语句:app="用友-U8-Cloud"漏洞:POST/hrss/dorado/smartweb2.RPC.d?__rpc=trueHTTP/1.1Ho......
  • Fastjson反序列化漏洞2:BasicDataSource利用链-用于内网
    之前说的Fastjson的利用链,补充来了,没有偷懒(狗头)前情提要:BCEL:加载恶意类、Fastjson反序列化漏洞1:吹吹水Fastjson干了啥Fastjson就是处理json用的,可以将json转换成对象(自定义的一套序列化和反序列化)举个例子:下面这个json字符串经过JSON.parse(jsonString)处理可以得到com.test......
  • Agile PLM数据库表结构(Oracle)
    刚进公司,任务是接管PLM系统,但是还在给外包团队开发,没有代码。无妨先看业务和数据库,ok,业务看不懂,只能先看数据库,数据库没有数据字典,这个系统没有任何文档产出......练手时发现数据库类型是Oracle,面对百度不成问题,数据字典只能看前端然后去数据库里面一个个找着对应自己整理了,纯折磨......
  • 无线通信模块通过TCP/IP协议实现与PC端的数据传输
    在当今的信息时代,无线通信技术的发展日新月异,为我们的工作和生活带来了极大的便利。其中,无线通信模块通过TCP/IP协议向PC端传送数据已经成为了一种常见的通信方式。本文将详细介绍这一过程的主要步骤和涉及的关键技术,并以WIFI模块为例,探讨如何在QT平台下实现数据的无线传输。一、......
  • 8-cpu性能评估工具
    8.cpu性能评估工具8.cpu性能评估工具vmstat用于对操作系统的内存信息,进程状态,cpu活动进行监视每3秒显示1次,共显示5次vmstat35Procs  r: cpu队列中进程数量,一般小于等于cpu的核心数,当该值经常大于cpu核心数时,表示cpu负载高  b:等待IO的进程数量,一般为0,当经常不为......
  • TheAlgorithms/C - 各种基础算法、数据结构的 C 语言实现+armink/SFUD - 一款基于 JED
    1、OpenMV-RT-基于恩智浦i.MXRT系列的开源机器视觉AI模块OpenMV-RT是一款基于恩智浦最近主打的i.MXRT超高性能系列MCU的视觉模块,模块设计者是恩智浦大牛工程师宋岩(对,就是ARMCortex-M3权威指南中文版作者)。模块源代码: https://github.com/RockySong/micropython......
  • 创建reacte工程2
    1配置store1)安装npminstall@reduxjs/toolkit react-redux【index.js】import{Provider}from'react-redux'import{store}from'store'<Providerstore={store}><App/></Provider>【store/index.js】import{configureStore}f......
  • RFSOC ZU47DR+KU15P CPCI 信号处理卡
    CPCI信号处理单元,作为新一代大带宽信号处理平台,可实现宽带信号采集、处理和回放等功能,可进行高性能大带宽并行计算,适用于雷达、电子对抗等应用场合。更多信息请加weixin-pt890111获取其主要特性为:标准6U-CPCI板型;板载1片RFSOC,型号为ZU47DR-E1156;板载1片FPGA,型号......