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

C#-委托delegate

一.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.dtcms.com/a/69692.html

相关文章:

  • C++设计模式-观察者模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
  • 网络视频监控平台在医疗领域的应用
  • 浏览器中输入 URL 到显示主页的完整过程
  • 【后端】【django】Django 自带的用户系统与 RBAC 机制
  • 历次科技泡沫对人工智能发展的启示与规避措施
  • containerd 拉取镜像的工具以及优劣
  • Python----计算机视觉处理(opencv:图片灰度化)
  • go 安装swagger
  • 【论文精读】Deformable DETR:用于端到端目标检测可变形 Transformer
  • go 加载yaml配置文件
  • 3-1 写分享报告
  • 鸿蒙编译框架插件HvigorPlugin接口的用法介绍
  • zuul路由转发功能的核心流程
  • 【docker系】docker安装数据迁移
  • 【含文档+PPT+源码】基于Django框架的乡村绿色农产品交易平台的设计与实现
  • 论文分享:PL-ALF框架实现无人机低纹理环境自主飞行
  • KICK第五课:Mac 系统下安装 Xcode 或 Clang
  • BGP路由聚合
  • 开发小运维-搭建rocketmq集群
  • OpenWebUI项目调研对比
  • Windows远程桌面黑屏怎么办?
  • 如何限制非法的WIFI连接操作以及网络端口使用?
  • 【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中
  • 六十天前端强化训练之第十六天JSX语法深度解析与应用实践指南
  • 笔记:基于springboot+ShardingSphere-jdbc5.0.0的分库分表(偏yml配置)
  • 24.pocsuite3:开源的远程漏洞测试框架
  • X86 RouterOS 7.18 设置笔记六:端口映射(IPv4、IPv6)及回流问题
  • 高级java每日一道面试题-2025年2月25日-框架篇[Mybatis篇]-Mybatis是如何进行分页的?分页插件的原理是什么?
  • RK3588 Linux实例应用(4)——KEY(设备介绍与设备树介绍)
  • 玩转python:通俗易懂掌握高级数据结构:collections模块之defaultdict