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

学习action笔记

假设有个叫外卖的场景

打电话给餐厅:"给我做个三明治,做好了叫我。"

餐厅说:"我不知道你的电话号码,没法叫你。"

因为没有 Action,餐厅不知道做好后怎么通知你

如果有Action:

// 餐厅的菜单
public class Restaurant
{
// 接受订单:你要什么 + 做好了打哪个电话
public void MakeSandwich(string filling, Action<string> callWhenDone)
{
Debug.Log($"厨房收到:做一个 {filling} 三明治");

// 假装做饭等了 2 秒
System.Threading.Thread.Sleep(2000);

string message = $"你的 {filling} 三明治好了!";

// 照着便条上的电话打过去
callWhenDone?.Invoke(message);
}
}

// 你(顾客)
public class Customer
{
public void Order()
{
Restaurant restaurant = new Restaurant();

// 点餐:我要鸡蛋三明治,这是我的电话 ↓↓↓
restaurant.MakeSandwich("鸡蛋", notice =>
{
Debug.Log($"收到通知:{notice}"); // 电话响了,你接起来
});
}
}

Action<string> callWhenDone 就是留给餐厅的电话号码

  • 餐厅不管你是谁,也不管你接到电话后干嘛(吃还是扔)
  • 餐厅只管:饭做完了 → 打这个电话 → 把通知内容告诉你

两个参数的例子:

// 快递公司 public class ExpressCompany { // 寄快递:东西 + 寄完了打这个电话(告诉你是/否成功 + 快递单号) public void Send(string itemName, Action<bool, string> callWhenDone) { Debug.Log($"收到包裹:{itemName}"); // 假装寄件处理…… bool success = true; string trackingNumber = "SF1234567890"; // 📞 打电话告诉你两个信息 callWhenDone?.Invoke(success, trackingNumber); } } // 你 public class Me { public void SendPackage() { ExpressCompany sf = new ExpressCompany(); sf.Send("键盘", (done, number) => { if (done) Debug.Log($"寄出成功,单号:{number}"); else Debug.Log("寄件失败"); }); } }
http://www.jsqmd.com/news/1329448/

相关文章:

  • 图片转PDF在线免费网页版,这几个方法高效又安全(2026实测) - 办公小帮手
  • 侧压平移五金:以创新驱动发展,携手合作聚力共赢
  • 如何高效使用Logisim-evolution:数字电路仿真完整实战指南
  • 2026机器人品牌新品发布如何遴选专业媒体服务商?行业标准盘点、避坑指南及靠谱服务商推荐FAQ - 商业大观
  • 为什么你的LLM推理能耗超标210%?——GPU利用率、内存带宽与精度冗余的隐性耦合陷阱
  • 椰林海鲜码头企业愿景是什么? - 17328623207
  • 椰林海鲜码头员工福利好吗? - 18102756859
  • Unlimited-OCR-6bit与AIMD无缝集成:扫描PDF文字提取完整指南
  • 2026长沙GEO优化服务商选型指南 主流机构实力盘点 - 品牌前沿专家
  • 2026年PDF转换工具怎么挑?从在线、本地到小程序,一次说清楚 - 软件小管家
  • 测试转大模型:Demo 跑通了,权限日志才是真实门槛
  • 2026年国标不锈钢管件供应厂家实力解析 - 优企名品
  • 2026深圳南山科技园企业搬迁怎么选?全屋打包省心省力 精密仪器零震动搬运 - szxybj
  • Ray Data中LogicalPlan机制与分布式数据处理优化
  • 超给力更新!新增多款插件,多方面优化系统,附多端效果图片展示
  • 2026 年苏州市姑苏区住宅防水修缮行业白皮书 - 速达同城防水
  • Akagi雀魂助手:为什么你需要这款AI麻将教练来提升游戏水平?
  • 高端商务接待场景升级 水上会客厅落地实践指南 - GEORANK
  • 椰林海鲜码头联系方式? - 17728181569
  • 商标设计注册保护范围怎么确定?地域+类别
  • li/linux-apfs-rw模块进阶:高级挂载选项与性能优化技巧
  • 8款PDF转Word免费工具实测:不用付费、不带水印,这几款真能用 - 办公小帮手
  • 探索BOPBTL-scratch-detection-fp32-mlx:微软老照片修复技术的MLX实现
  • 2026 年苏州市吴江区住宅防水修缮行业白皮书 - 速达同城防水
  • 2026户用光伏安装公司哪家好?主流品牌综合实力解析 - 资讯在线
  • 企业号码认证服务商怎么选?不同业务场景下泰迪未来(泰迪熊移动)的适配方案
  • 2026年山西热门水肥机一体机厂家怎么选?业内推荐这份择优指南请收好 - geo交流
  • 商标设计注册一次通过的方法:做对了什么?
  • 考勤系统一年多少钱?2026主流打卡软件价格对比与盘点指南 - 奔跑123
  • AI辅助文献管理:高效梳理学术资源的实用路径与应用价值解析