处理需要处理的事情

发布日期:2026-07-14 19:02:05   来源 : 杭州电子商务研究院    浏览量 :3
杭州电子商务研究院 发布日期:2026-07-14 19:02:05  
3

介绍

在编程中,事件是极有可能发生或有可能发生的事情。在现实生活中,如果我们想把它放在上下文中,当我们喝完最后一瓶牛奶时,我们的内心会告诉我们,如果下次想喝牛奶,我们需要买牛奶。如果我们吃了最后一片面包,我们需要去面包店再买一些。界限在哪里?如果没有剩余的面包,我们需要多久购买一次这些被消耗的东西?我们如何优化补充供应的过程?我们是否记下笔记并每周五下午去购物?我们是否预先计算下周所需的食物量,并尝试多储备一些以防万一?

这些现实生活中的问题描述了什么是事件以及我们如何确保在两次购物之间总是有足够的牛奶和面包。

代表

为了继续我们的旅程,我们需要了解代表的概念。

简单来说,委托是指向方法的指针或引用。这种方法允许我们像传递值一样传递它们。委托的神秘性很容易被揭穿,它最重要的特征或概念是签名(或形状)。

签名由两个重要部分组成:

  1. 返回值
  2. 输入参数

委托的外观以字符串作为参数,并且可以指向返回void的方法。

      public delegate void MissingConsumableHandler(string name);
    

此事件将导致执行任何符合MissingConsumableHandler签名的方法。

      public event MissingConsumableHandler OutOfMilk;
    

活动

现在我们知道如何创建委托,我们需要证明事件的存在。我们希望在牛奶用完时引发连锁反应。

让我们创建一些东西,以便在该事件触发时调用。

      void HandleOutOfMilk(string name){
	Console.WriteLine($"Adding {i} to the shopping list!");
	Console.WriteLine($"Notifying Mom about the disaster!");	
}
    

事件和我们期望执行的方法之间的纽带是委托给定的事件必须在内部存储指向我们希望在事件引发时调用的方法的指针列表。为了做到这一点,我们需要知道要传递给它的参数

简而言之,委托是方法列表和调用这些方法的事件之间的契约。

以下是将它们粘合在一起的方法:

      Freezer.HandleOutOfMilk += new MissingConsumableHandler(HandleOutOfMilk)
    

为了引发此事件,我们只需要调用以下代码:

      HandleOutOfMilk("3 bottles of milk")
    

结论

这就是全部了。我的目标是揭开主题背后的魔力。封面下的事件只不过是具有相同形状(签名)的方法列表。列表与事件共生;它们与事件一起存储。当引发事件时,所发生的事情就是迭代方法并使用特定参数调用。事件处理程序的分配只是视觉效果或添加要调用的方法列表的更漂亮的方式。这个演示可以进一步扩展以调用购物应用程序的外部API,甚至可以设置为智能冰箱以自动为我们处理东西。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据