当前位置: 首页 > 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)
    {
    }
}

相关文章:

  • 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项目调研对比
  • 山西忻州市人大常委会副主任郭建平接受审查调查
  • 2025年两岸关系研讨会在上海开幕
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置
  • 保利42.41亿元竞得上海杨浦东外滩一地块,成交楼面单价超8万元
  • 融创中国:今年前4个月销售额约112亿元
  • 特朗普政府拟终止太空污染研究,马斯克旗下太空公司将受益