【C#】委托,方法回调,匿名函数,拉姆达表达式
① 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#】委托,方法回调,匿名函数,拉姆达表达式相关推荐
- 多线程 委托 匿名函数 拉姆达 事件
多线程 using System; using System.Threading;//引用的命名空间 这个命名空间有C#对线程的各种操作namespace aaa//瞎起的名字哈哈 {class Pr ...
- 匿名函数 和 拉姆达表达式
匿名函数 匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法.可以通过在代码块后面跟上delegate关键字来创建匿名方法. delegate void print();delegate st ...
- 拉姆达表达式相关知识
拉姆达表达式 拉姆达表达式是创建匿名函数的另一种方法.因此,拉姆达表达式可以赋值给委托.虽然主要在操作LINQ中使用拉姆达表 达式,但是这种表达式也适用于委托和事件. 拉姆达表达式运算符 ...
- C# 匿名方法和拉姆达表达式
"` "`代码如下: using System; using System.Collections.Generic; using System.Linq; using System ...
- C# 匿名委托、匿名方法、匿名对象、Lambda表达式
C# 匿名委托.匿名方法.匿名对象.Lambda表达式 原文:C# 匿名委托.匿名方法.匿名对象.Lambda表达式 一.匿名类型 可通过使用 new 运算符和对象初始值创建匿名类型. 示例: var ...
- C#拉姆达(=)表达式
前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似 ...
- 拉姆达表达式学习(1)
我曾经遇到一个项目,项目里面需要经常对一系列的同类型集合进行操作,如对集合进行增加元素,删除集合的指定索引的元素等等. 我们可以使用ArrayList来进行.如 1 ArrayList stringL ...
- 一句话学会拉姆达表达式(JAVA)
LambdaExpress 一 . 理论 1.1 是什么 Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lam ...
- SqlSugar常用查询实例-拉姆达表达式
SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表SqlSugarClient db = SugarContext.GetInstance() ...
- C#语法之匿名函数和Lambda表达式
上一篇博客主要是对委托和事件做了一小结,这篇是在上一篇博客的基础上对匿名函数和Lambda表达式小结.还是接着上一篇说起,在上一篇中也说了委托是一种数据结构,主要是解决让函数作为参数的问题.在使用委托 ...
最新文章
- Python Argparse模块
- 图像降噪算法——低秩聚类:WNNM算法
- python excel读取出错_python读取excel数据出错
- MySQL中获取天、周、月等数据
- 介绍一种Web上打印技术
- Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
- 如何用 Python 拆分表格并发送邮件?
- python做excel自动化-用Python控制Excel实现自动化办公,手把手教你
- Hadoop入门到精通(不断更新中。。。。)
- 西威变频器使用说明书_西威变频器说明书西威变频器说明书图文.doc
- Abaqus 用户子程序 UEL
- 科学健脑,让IQ更上一层楼
- python 声音指纹识别,Python-samp中的Dejavu音频指纹识别
- 常用服务器查询日志命令(持续添加)
- 桌面以及文件资源管理器无限重启的解决
- 百万并发下的Nginx优化,看这一篇就够了!
- Qt项目的新首席维护人员
- 基于C语言编写的超市管理系统
- 11月8日google pr更新(今年第四次)
- 华师在线计算机考试登陆不上,华师在线首页登录网址
热门文章
- Matlab学习笔记(8)——hist函数
- 计算机断电硬盘数据会丢失吗,为什么突然停电后电脑硬盘数据会丢失?
- 用计算机拜年祝福语,适合拜年发的朋友圈祝福语
- 如何解决安装佳能LBP2900驱动时总是提示无法识别USB连接(附带驱动程序下载地址)
- 第7章第37节:七图排版:一张背景六张拼合布局 [PowerPoint精美幻灯片实战教程]
- 利用计算机指令清理垃圾,系统运维---教你用dos命令清除系统垃圾的快速方法
- iQOO刷鸿蒙系统,iQOO招募Android12 Beta版即将到来,网友:我想要鸿蒙系统!
- 关于actel FPGA下载的学习报告
- debug——生成log
- 宏电4g路由器流量卡怎么设置_宏电4g无线路由器设置_4g路由器怎么设置网口