当前位置: 首页 > news >正文

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();

http://www.jsqmd.com/news/634856/

相关文章:

  • 终极VSCode浏览器预览教程:从安装到调试的完整指南
  • ChanlunX缠论插件:3分钟掌握专业级K线分析,告别复杂缠论学习曲线!
  • macOS光标个性化终极指南:用Mousecape打破系统限制的完整方案
  • 2026年吉林市黄金回收应用白皮书报价剖析 - 资讯焦点
  • 三菱PLC网口通讯避坑指南:MX Component连接上位机常见问题与解决方案
  • 终极Gravity部署与发布指南:跨平台编译的完整解决方案
  • Redis持久化:从AOF到RDB,如何实现数据不丢失?犊
  • Ever Gauzy:开源ERP/CRM/HRM一体化平台,中小企业数字化转型的最佳选择
  • ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现再
  • 如何用Text2Image将文字描述变成视觉图像:从原理到实战指南
  • 1000面值京东领货码回收攻略,目前能收哪些类型 - 淘淘收小程序
  • 如何快速掌握Buzz:终极离线语音转文字工具完整指南
  • Java面试必备:ViT图像分类模型原理深度解析
  • 2026洛阳江浙菜宴请完全指南:诱江南官方联系方式+主流品牌深度横评+避坑清单 - 精选优质企业推荐榜
  • 终极指南:MediaCMS无缝集成第三方系统——SAML认证与API对接全攻略
  • 终极Moco性能优化与部署指南:生产环境中的最佳配置方案
  • 跨平台文件共享终极方案:3步实现Mac对NTFS存储设备的完全读写支持
  • 终极ViPER4Windows音频补丁工具:快速解决Windows 10/11兼容性问题
  • 基于STM32的电子钟与万年历设计
  • OpenFGA高级功能探索:反向查找、批量检查与对象列表的终极指南
  • 梳理邦润集成房屋防水性能好不好,集成房屋费用怎么收费 - mypinpai
  • 终极Headshot AI开发者手册:从零掌握智能头像生成系统架构
  • 深入剖析dumpsys cpuinfo:从命令解析到性能优化实战
  • 告别黑眼圈眼袋!BFBY淡纹眼霜实测,全肤质适配的眼周修护好物 - 资讯焦点
  • BCI Competition IV 2a数据集实战指南:从零开始掌握运动想象脑电信号解码
  • AI时代新型的项目管理应该是什么样的?汗
  • Cursor Pro破解终极指南:三步实现无限AI编程体验
  • 006、参数高效微调(PEFT)入门:LoRA原理与优势
  • 蜘蛛表格新手入门避坑:10个常见问题与解决方法 - 蜘蛛小助理
  • 终极全球字体解决方案:用Noto字体告别“豆腐块“时代