① delegate

namespace _01DelegateTest
{/* 委托定义调用步骤* 1.定义委托类型* 2.给委托赋值      3.调用委托  *///定义一个没有返回值 没有参数的委托(注册的方法应该与委托的形式保持一致,即:无返回值无参数的方法)【签名保持一致】public delegate void Dele();class Program{static void Main(string[] args){Student s = new Student();Dele del = s.Drink;  //可以暂时理解为将 方法存储 delegate委托中 从而通过委托来进行调用del += s.Eat;  // 对委托进行注册Console.ReadKey();}}public class Student{public void Drink(){Console.WriteLine("喝水");}public void Eat(){Console.WriteLine("吃饭");}}// 委托 del中相当于存放的是 Drink()方法的地址  调用时,先找到Drink()方法的地址,然后进行调用Drink()方法
}

② 方法回调的初步理解

namespace _02_方法的回调
{public  delegate string Dele(string str);class Program{static void Main(string[] args){Test(ToUP, "abc"); //方法的回调Console.ReadKey();}public static string Test(Dele del, string str){return del(str);}//方法static string ToUP(string str){return str.ToUpper();}static string ToLow(string str){return str.ToLower();}}
}

③ 匿名函数

namespace _03_匿名函数
{public delegate int Dele(int num1,int num2);class Program{/*匿名函数: delegate(参数){方法体}*/static void Main(string[] args){Test(GetMax, 1,2);//---->转成匿名函数Test(delegate (int a, int b) { return Math.Max(a, b); }, 1, 2);}static int Test(Dele del,int a,int b){return del(a, b);}static int GetMax(int num1,int num2){return Math.Max(num1, num2);}}
}

④拉姆达表达式

namespace _04_LambdaTest
{public delegate void Dele();public delegate void Dele1(string name);public delegate string Dele2(string name);class Program{static void Main(string[] args){Dele del = delegate () { };Dele del1 = () => { };Dele1 del2 = delegate (string name) { };Dele1 del3=(string name)=>{ };Dele1 del4 = (name) => { };  //lambda表达式会根据委托的定义自动判断参数的类型Dele2 dele5 = (name) => { return name; };}}
}

【C#】委托,方法回调,匿名函数,拉姆达表达式相关推荐

  1. 多线程 委托 匿名函数 拉姆达 事件

    多线程 using System; using System.Threading;//引用的命名空间 这个命名空间有C#对线程的各种操作namespace aaa//瞎起的名字哈哈 {class Pr ...

  2. 匿名函数 和 拉姆达表达式

    匿名函数 匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法.可以通过在代码块后面跟上delegate关键字来创建匿名方法. delegate void print();delegate st ...

  3. 拉姆达表达式相关知识

    拉姆达表达式 拉姆达表达式是创建匿名函数的另一种方法.因此,拉姆达表达式可以赋值给委托.虽然主要在操作LINQ中使用拉姆达表        达式,但是这种表达式也适用于委托和事件. 拉姆达表达式运算符 ...

  4. C# 匿名方法和拉姆达表达式

    "` "`代码如下: using System; using System.Collections.Generic; using System.Linq; using System ...

  5. C# 匿名委托、匿名方法、匿名对象、Lambda表达式

    C# 匿名委托.匿名方法.匿名对象.Lambda表达式 原文:C# 匿名委托.匿名方法.匿名对象.Lambda表达式 一.匿名类型 可通过使用 new 运算符和对象初始值创建匿名类型. 示例: var ...

  6. C#拉姆达(=)表达式

    前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似 ...

  7. 拉姆达表达式学习(1)

    我曾经遇到一个项目,项目里面需要经常对一系列的同类型集合进行操作,如对集合进行增加元素,删除集合的指定索引的元素等等. 我们可以使用ArrayList来进行.如 1 ArrayList stringL ...

  8. 一句话学会拉姆达表达式(JAVA)

    LambdaExpress 一 . 理论 1.1 是什么 ​ Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lam ...

  9. SqlSugar常用查询实例-拉姆达表达式

    SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...

  10. C#语法之匿名函数和Lambda表达式

    上一篇博客主要是对委托和事件做了一小结,这篇是在上一篇博客的基础上对匿名函数和Lambda表达式小结.还是接着上一篇说起,在上一篇中也说了委托是一种数据结构,主要是解决让函数作为参数的问题.在使用委托 ...

最新文章

  1. Python Argparse模块
  2. 图像降噪算法——低秩聚类:WNNM算法
  3. python excel读取出错_python读取excel数据出错
  4. MySQL中获取天、周、月等数据
  5. 介绍一种Web上打印技术
  6. Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
  7. 如何用 Python 拆分表格并发送邮件?
  8. python做excel自动化-用Python控制Excel实现自动化办公,手把手教你
  9. Hadoop入门到精通(不断更新中。。。。)
  10. 西威变频器使用说明书_西威变频器说明书西威变频器说明书图文.doc
  11. Abaqus 用户子程序 UEL
  12. 科学健脑,让IQ更上一层楼
  13. python 声音指纹识别,Python-samp中的Dejavu音频指纹识别
  14. 常用服务器查询日志命令(持续添加)
  15. 桌面以及文件资源管理器无限重启的解决
  16. 百万并发下的Nginx优化,看这一篇就够了!
  17. Qt项目的新首席维护人员
  18. 基于C语言编写的超市管理系统
  19. 11月8日google pr更新(今年第四次)
  20. 华师在线计算机考试登陆不上,华师在线首页登录网址

热门文章

  1. Matlab学习笔记(8)——hist函数
  2. 计算机断电硬盘数据会丢失吗,为什么突然停电后电脑硬盘数据会丢失?
  3. 用计算机拜年祝福语,适合拜年发的朋友圈祝福语
  4. 如何解决安装佳能LBP2900驱动时总是提示无法识别USB连接(附带驱动程序下载地址)
  5. 第7章第37节:七图排版:一张背景六张拼合布局 [PowerPoint精美幻灯片实战教程]
  6. 利用计算机指令清理垃圾,系统运维---教你用dos命令清除系统垃圾的快速方法
  7. iQOO刷鸿蒙系统,iQOO招募Android12 Beta版即将到来,网友:我想要鸿蒙系统!
  8. 关于actel FPGA下载的学习报告
  9. debug——生成log
  10. 宏电4g路由器流量卡怎么设置_宏电4g无线路由器设置_4g路由器怎么设置网口