1.委托基础语句形式

namespace QLVision
{
delegate void dHelp();//定义委托 static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
dHelp h;//委托实例 h = SaySometing;//实例赋值 h();//委托调用 void SaySometing()
{
MessageBox.Show("Hello");
} }
}
}

2.委托的作用

委托用于存放行为(即方法),行为由调用者决定。

namespace QLVision
{
delegate void dHelp();//定义委托 static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
void Talk(dHelp help)//传参为委托
{
help();//方法内执行委托方法
} void SayHello()
{
MessageBox.Show("Hello");
}
void SayBye()
{
MessageBox.Show("Bye");
} Talk(SayHello);//方法调用
Talk(SayBye);//方法调用 }
}
}

3.委托的分类

与方法名和方法体无关,只按返回类型,参数类型,参数个数分类。

4.委托的简化

泛型委托:

Action :无返回值;链接:Action 委托 (System) | Microsoft Docs

Func :有返回值;链接:Func<TResult> 委托 (System) | Microsoft Docs

namespace QLVision
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
void Talk(Action help)//传参为委托
{
help();//执行委托方法
} Talk(SayHello);//调用方法 void SayHello()
{
MessageBox.Show("Hello");
}
}
}
}

使用Lambda表达式:

namespace QLVision
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
void Talk(Action help)//传参为委托
{
help();//执行委托方法
} Talk(() => MessageBox.Show("Hello"));//Lamda表达式 }
}
}

参考链接:之所以你没有使用委托是因为你还不够了解它.._哔哩哔哩_bilibili

C# · 委托语句简化演变的更多相关文章

  1. 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包

    0x00 前言 通过上一篇博客<匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的>的内容,我们实现了使用委托来构建我们自己的消息系统的过程.但是在日常的开发中,仍然有很多开发者因为 ...

  2. .net 委托的简化语法

    1. 不需要构造委托对象 ThreadPool.QueueUserWorkItem:通过线程池 public static void WorkItem() { ThreadPool.QueueUser ...

  3. 6.2 C# 2:利用 yield 语句简化迭代器

    class Program { static void Main(string[] args) { object[] values = new object[] { "a", &q ...

  4. springboot+mybatis环境的坑和sql语句简化技巧

    1.springfox-swagger实体类无限递归 https://hacpai.com/article/1525674135818 里面有不完美的解决方案 不用动源码的解决方案也有,在swagge ...

  5. 使用匿名委托,Lambda简化多线程代码

    使用匿名委托,Lambda简化多线程代码   .net中的线程也接触不少了.在多线程中最常见的应用莫过于有一个耗时的操作需要放到线程中去操作,而在这个线程中我们需要更新UI,这个时候就要创建一个委托了 ...

  6. [CLR via C#]17. 委托

        回调函数是一种非常有用的编程机制,它已经存在很多年了.Microsoft .NET Framework通过委托(delegate)来提供一种回调机制.不同于其他平台(比如非托管C++)的回调机 ...

  7. c#中的数据类型简介(委托)

    c#中的数据类型简介(委托) 什么是委托? 委托是一种类型,它封装了一类方法,这些方法具有相同的方法签名(signature).定义听起来有点拗口,首先可以确定委托是一种数据类型,那么什么是方法签名, ...

  8. c#中的数据类型简介(委托)

    什么是委托? 委托是一种类型,它封装了一类方法,这些方法具有相同的方法签名(signature)和返回类型.定义听起来有点拗口,首先可以确定委托是一种数据类型,那么什么是方法签名,其实就是指方法的输入 ...

  9. 重温CLR(十二) 委托

    回调函数是一种非常有用的编程机制,它的存在已经有很多年了..NET通过委托来提供回调函数机制.不同于其他平台(比如非托管C++)的回调机制,委托的功能要多得多.例如,委托确保回调方法是类型安全的(这是 ...

随机推荐

  1. GopherCon SG 2019 "Understanding Allocations" 学习笔记

    本篇是根据 GopherCon SG 2019 "Understanding Allocations" 演讲的学习笔记. Understanding Allocations: th ...

  2. Metalama简介3.自定义.NET项目中的代码分析

    本系列其它文章 使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题 Metalama简介1. 不止是一个.NET跨平台的编译时AOP框架 Metalama简介2.利用Aspect在 ...

  3. 移动端input解决键盘问题 方案1

    $('body').on('focusin', 'input, textarea', function(event) { if(navigator.userAgent.indexOf('Android ...

  4. 2021.08.01 P4359 伪光滑数(二叉堆)

    2021.08.01 P4359 伪光滑数(二叉堆) [P4359 CQOI2016]伪光滑数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 若一个大于 11 的整数 MM ...

  5. 2021.07.23 P3275 糖果(差分约束)

    2021.07.23 P3275 糖果(差分约束) [P3275 SCOI2011]糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.为了满足更多更多约束条件,合适地 ...

  6. 【mq】从零开始实现 mq-01-生产者、消费者启动

    MQ 是什么? MQ(Message Queue)消息队列,是基础数据结构中"先进先出"的一种数据结构. 指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递--生产者产生 ...

  7. C语言超全学习路线(收藏让你少走弯路)

    刚入门是否觉得C语言很难?那可能是你还没找到正确的C语言学习路线,收藏以防找不到,让你少走弯路. 基本语法 选择控制语句 if,swith 循环控制语句 while,for 控制语句相关关键字分析 变 ...

  8. Java基础语法Day_07(1-3 常用API第一部分)

    常用API第一部分 第1节 Scanner类         day07_01_API概述和使用步骤(使用最基本的三个步骤 搜索 构造方法  方法) day07_02_Scanner概述及其API文档 ...

  9. 《图解UE4渲染体系》Part 0 引擎基础

    在介绍UE4渲染体系前,我们有必要来先看一下UE4是用什么样的方式来构建游戏场景数据的. 1 Object 在UE4中当我们说Object,通常是指代引擎代码中的UObject类,它是引擎里管理绝大部 ...

  10. python学习-Day33

    目录 今日内容详细 socket socket套接字简介 socket模块 服务端 客户端 通信循环 服务端 客户端 链接循环 半连接池 概念 产生半连接的两种情况 黏包问题 多次发送被并为一次 TC ...