C#-委托delegate

ops/2025/3/19 20:03:01/

一.C#-委托delegate

    C#中委托即C++中函数指针,通过delegate关键字可声明一个代理.代理可像指针一样作为参数传递和调用.

    <1.声明一个代理类型

class Test{public delegate string CreateNativeString();
}

   <2.创建代理变量

class Main{public Test.CreateNativeString pointer;
}

   <3.创建目标方法

class Main{public string MyCreateString(){return "MyCreateString"}
}

   <4.目标方法赋值代理变量

class Main{pointer = MyCreateString();
}

   <5.代理变量传参&调用

class Main{public void Invoke(Test.CreateNativeString pointer){pointer();}
}

二.Func&Action

    <1.Func(具有返回值的委托)

         定义了输入和返回的delegate,例如Func<int, string>表示输入为int,输出为string

public class Test
{Func<string, int> fun = CreateString;public int CreateString(int param){}
}

    <2.Action(不具有返回值的委托) 

         定义了输入的delegate,例如Action<int, string>表示输入为int,string

public class Test
{Action<string, int> fun = CreateString;public int CreateString(string str, int param){}
}


http://www.ppmy.cn/ops/166826.html

相关文章

本地部署Jina AI Reader:用Docker打造你的智能解析引擎

本地部署Jina AI Reader&#xff1a;用Docker打造你的智能解析引擎 &#x1f31f; 引言&#xff1a;为什么需要本地部署&#xff1f;&#x1f4cc; 场景应用图谱&#x1f527; 部署指南&#xff08;Linux环境&#xff09;1. 环境准备2. Docker部署3. 验证服务状态 &#x1f680…

前端如何实现生成excel文件,并下载

后端很忙没有实现配合&#xff0c;主要由前端来实现&#xff0c;需要点击下载模版生成一个excel并下载的功能&#xff0c; 这是格式 <a href"javascript:void(0)"click"downloadTemplate">下载模板</a> import * as XLSX from "xlsx&qu…

【存储中间件】Redis核心技术与实战(四):Redis高并发高可用(Redis集群介绍与搭建)

文章目录 Redis集群集群前置知识数据分布理论节点取余分区一致性哈希分区虚拟一致性哈希分区虚拟槽分区为什么槽的范围是0 &#xff5e;16383&#xff1f; Redis数据分区Redis 虚拟槽分区的特点集群功能限制 搭建集群节点配置集群创建创建集群随机主从节点指定主从节点创建集群…

Harmony NEXT开发之创建自定义组件

目录 自定义组件的基本用法 自定义组件的基本结构 成员函数/变量 自定义组件的参数规定 build()函数 自定义组件通用样式 在ArkUI中&#xff0c;UI显示的内容均为组件&#xff0c;由框架直接提供的称为系统组件&#xff0c;由开发者定义的称为自定义组件。在进行 UI 界面…

基于 easyExcel 3.1.5依赖的包 实现动态表头 动态表格内容

1.需求&#xff1a;需要导出的EXCEL示例&#xff1a; 2.依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.5</version></dependency> 3.工具类&#xff1a; p…

ZooKeeper的五大核心作用及其在分布式系统中的关键价值

引言 在分布式系统的复杂架构中&#xff0c;协调多个节点的一致性、可靠性和高可用性始终是技术挑战的核心。​Apache ZooKeeper作为业界广泛采用的分布式协调服务&#xff0c;凭借其简洁的树形数据模型&#xff08;ZNode&#xff09;和高效的原子广播协议&#xff08;ZAB&…

【多线程】线程不安全问题

文章目录 多线程不安全的原因大的层面->多线程是随机调度的容易产生死锁 小的层面->内存不可见性引入volatile关键字 指令重排序不是原子性带来的隐患 synchronized锁的互斥性及作用可重入性——解决死锁 wait()和notify()两个突然迸发出的疑问 多线程不安全的原因 大的…

QVariant:Qt中万能类型的使用与理解

目录 1.引言 2.QVariant的用法 2.1.包含头文件 2.2.基本类型的存储与获取 2.3.自定义类型的存储与获取 2.4.枚举类型的存储与获取 2.5.类型检查与转换 2.6.容器类型的存储与获取 3.枚举的问题 4.信号槽中使用自定义结构体 4.1.使用QVariant转换 4.2.直接传递自定义…