news 2026/6/23 19:20:28

c#匿名函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c#匿名函数

匿名函数的概念

顾名思义,就是没有名字的函数
匿名函数的使用主要是配合委托和事件进行使用
脱离委托和事件 是不会使用匿名函数的

基本语法

delegate (参数列表)
{
函数逻辑
};
何时使用?
1.函数中传递委托参数时
2.委托或事件赋值时

使用

1无参无返回

这样申明匿名函数 只是在申明函数而已 还没有调用
真正调用它的时候 是这个委托容器啥时候调用 就什么时候调用这个匿名函数

Action a = delegate () { Console.WriteLine("匿名函数逻辑"); }; a();

2.有参

class Test { public Action action; //作为参数传递时 public void Dosomthing(int a, Action fun) { Console.WriteLine(a); fun(); } //作为返回值 public Action GetFun() { return delegate() { Console.WriteLine("函数内部返回的一个匿名函数逻辑"); }; } public void TestTTTT() { } }
Action<int, string> b = delegate (int a, string b) { Console.WriteLine(a); Console.WriteLine(b); }; b(100, "123");

3.有返回值

Func<string> c = delegate () { return "123123"; }; Console.WriteLine(c());

4 一般情况会作为函数参数传递 或者 作为函数返回值

class Test { public Action action; //作为参数传递时 public void Dosomthing(int a, Action fun) { Console.WriteLine(a); fun(); } //作为返回值 public Action GetFun() { return delegate() { Console.WriteLine("函数内部返回的一个匿名函数逻辑"); }; } public void TestTTTT() { } } Test t = new Test(); Action ac = delegate () { Console.WriteLine("随参数传入的匿名函数逻辑"); }; t.Dosomthing(50, ac); t.Dosomthing(100, delegate () { Console.WriteLine("随参数传入的匿名函数逻辑"); }); //返回值 Action ac2 = t.GetFun(); ac2(); //一步到位 直接调用返回的 委托函数 t.GetFun()();

匿名函数的缺点

添加到委托或事件容器中后 不记录 无法单独移除

因为匿名函数没有名字 所以没有办法指定移除某一个匿名函数

Action ac3 = delegate ()
{
Console.WriteLine("匿名函数一");
};

ac3 += delegate ()
{
Console.WriteLine("匿名函数二");
};

ac3();

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 19:16:48

成本管理化技术中的成本估算成本控制成本优化

成本管理化技术中的成本估算、成本控制与成本优化 在现代企业管理中&#xff0c;成本管理化技术是提升企业竞争力的关键手段。成本估算、成本控制与成本优化作为其核心环节&#xff0c;直接影响企业的盈利能力和可持续发展。无论是制造业、服务业还是互联网行业&#xff0c;精…

作者头像 李华
网站建设 2026/4/13 15:52:58

你的终端神器之Oh My Zsh朔

1.安装环境准备 1.1.查看物理内存 [rootaiserver ~]# free -m 1.2.操作系统版本 [rootaiserver ~]# cat /etc/redhat-release 1.3.操作系统内存 [rootaiserver ~]# df -h /dev/shm/ 1.4.磁盘空间 [rootaiserver ~]# df -TH [rootaiserver ~]# df -h /tmp/ [rootaiserver ~]# d…

作者头像 李华
网站建设 2026/4/13 15:52:55

OpCore-Simplify技术深度剖析:如何系统化解决黑苹果EFI配置难题

OpCore-Simplify技术深度剖析&#xff1a;如何系统化解决黑苹果EFI配置难题 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在传统PC硬件上部署macOS系…

作者头像 李华
网站建设 2026/4/13 15:51:58

Halcon图像旋转实战:从基础函数到无损旋转的进阶方案

1. Halcon图像旋转基础函数解析 第一次接触Halcon做图像旋转时&#xff0c;我也被两个功能相似的函数搞晕过。rotate_image和affine_trans_image都能实现旋转效果&#xff0c;但底层逻辑和适用场景完全不同。先说说rotate_image这个"傻瓜式"函数&#xff0c;它的参数…

作者头像 李华
网站建设 2026/5/22 15:20:43

探索文本转CAD技术:如何用一句话重构你的3D设计工作流?

探索文本转CAD技术&#xff1a;如何用一句话重构你的3D设计工作流&#xff1f; 【免费下载链接】text-to-cad-ui A lightweight UI for interfacing with the Zoo text-to-cad API, built with SvelteKit. 项目地址: https://gitcode.com/gh_mirrors/te/text-to-cad-ui …

作者头像 李华