news 2026/8/4 22:57:53

学习action笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习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("寄件失败"); }); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/4 22:50:20

5步搞定明日方舟智能公招:MAA一键解放双手的终极指南

5步搞定明日方舟智能公招&#xff1a;MAA一键解放双手的终极指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitc…

作者头像 李华
网站建设 2026/8/4 22:47:57

东南大学/山东大学/临沂大学AFM:用焦耳热把Mn单原子“冻”进硬碳,钠电负极跑到8500圈

把原子离子泵“冻”进硬碳&#xff1a;非平衡焦耳热如何破解钠电负极的容量-动力学矛盾钠离子电池要走向低成本储能&#xff0c;负极材料很难绕开硬碳。它来源广、结构可调&#xff0c;但真正难做的是低电位平台区&#xff1a;0.10 V以下的平台容量通常来自闭孔填充和准金属钠簇…

作者头像 李华
网站建设 2026/8/4 22:46:58

5分钟掌握G-Helper:华硕笔记本轻量级控制工具的完整指南

5分钟掌握G-Helper&#xff1a;华硕笔记本轻量级控制工具的完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, …

作者头像 李华
网站建设 2026/8/4 22:46:01

如何快速使用GoldHEN金手指管理器:面向PS4玩家的完整指南

如何快速使用GoldHEN金手指管理器&#xff1a;面向PS4玩家的完整指南 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager GoldHEN金手指管理器是一款专为PlayStation 4设计的开源游戏修…

作者头像 李华