void Main()
{
// 委托 - 初级和高级的分水岭
// 1. 委托的初体验
// 委托是一个引用类型,其实是一个类型,保存方法的指针(地址) (变量名字都是地址 都是指针)
// 是一个数据类型 实际是一个对象(委托对象,函数对象,列表对象) 万物都是对象
// 指针指向一个方法 当我们调用委托的时候这个方法就立即被执行
// string int bool 可以是值类型 delegate object list 都是引用类型
// 委托是和类一个级别的 // 步骤
// 1. 声明一个委托 testDelegate
// 2. 声明要给方法 HellowDelegate
// 3. 创建委托实列 就是把 1 和 2 建立关系(1和2的参数和返回值要一致) // 定义好委托 如何使用? new 叫做 创建委托实例
// 委托把 变量 testDelegate 和 方法 HellowDelegate 建立关系,也就是指针和别名(变量)的关系
// 此时 testDelegate 也是一个指向 方法 HellowDelegate 的指针。 //testDelegate testDe = new testDelegate((a) => { }); // a 是参数
testDelegate testDelegate = new testDelegate(HellowDelegate); // a 是参数
testDelegate("我是一个委托调用"); // 明明可以直接调用方法 HellowDelegate 为什么要使用委托这个中间商
HellowDelegate("直接调用方法,为什么还要使用委托"); // 为什么使用委托这个中间商,直接调用方法不行吗??
// 在复杂业务上,把委托当作参数处理代码,把一部分代码独立出来(把需要公共的代码业务放到委托里面去实现,让代码更加简洁)。灵活使用。 }
// 定义一个委托 ps:和类同一个级别
delegate void testDelegate(string msg);
// 定义一个方法 -- 当作委托的参数
// 必须是 static 形式的方法???
public static void HellowDelegate(string a)
{
Console.WriteLine($"test{a}");
}

dotnet 委托delegate的使用 定义和使用的更多相关文章

  1. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

  2. C# 委托Delegate(一) 基础介绍&用法

    本文是根据书本&网络 前人总结的. 1. 前言 定义&介绍: 委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的 ...

  3. C#基础知识六之委托(delegate、Action、Func、predicate)

    1. 什么是委托 官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法. 个人理解 委托通俗一点说就是把一件事情交给别人来帮助完 ...

  4. 委托Delegate,多播委托和委托链

    定义一个委托 public delegate void CalculateDelegate(int 32 x,int 32 y); 定义一个委托类型的变量 public static Calculat ...

  5. 为什么不能把委托(delegate)放在一个接口(interface)当中?

    stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...

  6. C# 代理/委托 Delegate

    本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...

  7. c# 委托 delegate

    委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...

  8. 理解委托(delegate)及为什么要使用委托

    理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来 ...

  9. 深入理解委托(Delegate)

    前言 委托其实一直以来都感觉自己应该挺熟悉的,直到最近又去翻了翻 CLR via C#,感觉我之前的理解可能还有失偏颇.在这记录一下. 之前文章的链接: 接口和委托的泛型可变性 C#高级编程笔记 De ...

  10. .Net 委托 delegate 学习

    一.什么是委托: 委托是寻址方法的.NET版本,使用委托可以将方法作为参数进行传递.委托是一种特殊类型的对象,其特殊之处在于委托中包含的只是一个活多个方法的地址,而不是数据.   二.使用委托: 关键 ...

随机推荐

  1. 【ActiveJdbc】05

    一.事务 通常在 Java ORM 中有一个显式连接或管理器对象(JPA 中的 EntityManager,Hibernate 中的 SessionManager 等). ActiveJDBC 中没有 ...

  2. 【Tutorial C】08 函数 Function

    函数的定义 C源程序是由函数组成的. 最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成, 由主函数调用其他函数,其他函数也可以互相调用. 函数是C源程序的基本模块,程序的许多功能是 ...

  3. 从.net开发做到云原生运维(六)——分布式应用运行时Dapr

    1. 前言 上一篇文章我们讲了K8s的一些概念,K8s真的是带来了很多新玩法,就像我们今天这篇文章的主角Dapr一样,Dapr也能在K8s里以云原生的方式运行.当然它也可以和容器一起运行,或者是CLI ...

  4. baselines算法库的安装——Ubuntu20.04系统使用anaconda环境配置

    baselines算法库不做过多介绍,个人认为这是公开是所有reinforcement learning算法库中最权威的,虽然没有后期更新,也就是没有了学术界的state of the art ,  ...

  5. 使用 Apache SeaTunnel 实现 Kafka Source 解析复杂Json 案例

    版本说明: SeaTunnel:apache-seatunnel-2.3.2-SNAPHOT 引擎说明: Flink:1.16.2 Zeta:官方自带 前言 近些时间,我们正好接手一个数据集成项目,数 ...

  6. Go 监控告警入门 Opentelemetry

    前言 Opentelemetry 分布式链路跟踪( Distributed Tracing )的概念最早是由 Google 提出来的,发展至今技术已经比较成熟,也是有一些协议标准可以参考.目前在 Tr ...

  7. C#自己封装数据库操作类BaseADO

    这几天学习数据库操作,就自己封装了一个数据库操作类,下面是代码展示 下面的例子是Access数据库 也可能用在Sql数据库中,只在在第一行代码上修改标识符即可 #define OLEDB_ using ...

  8. Win32 API 读取文件

    昨天又用Win32来读取文件的时候,又出现了字符编码的问题. 用TCHAR字符来写文件呢,用系统的记事本打开是乱码. 用CHAR字字符来写呢,在读取汉字的时候后面有一串乱码, 用CHAR[]数组读取就 ...

  9. LeetCode300.最长递增子序列

    LeetCode300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除 ...

  10. /etc/shells 文件解释

    /etc/shells 文件是 UNIX 和类 UNIX 操作系统中的一个文本文件,它列出了系统上认为是合法的.用户可以选择的 shell 的完整路径.这个文件对于系统安全和用户环境配置很重要. 以下 ...