gpt4 book ai didi

c# - 事件和委托(delegate)困境

转载 作者:行者123 更新时间:2023-11-30 18:57:52 27 4
gpt4 key购买 nike

我真的无法理解事件和委托(delegate)的概念。我知道委托(delegate)是持有方法引用的对象,可以调用具有相同返回类型和参数的方法,但事件到底是什么?

如果我需要使用事件来制作一个简单的计算器,那么我该如何使用它们以便有 3 个事件:一个可以用于数字,一个用于运算符,另一个用于等于或结果操作。

最佳答案

Delegate 基本上是一个方法指针。委托(delegate)让我们创建一个引用变量,但它不是引用类的实例,而是引用类中的方法。它引用具有返回类型并具有与该委托(delegate)指定的相同参数的任何方法。这是事件的一个非常有用的方面。

事件 只是我们程序中发生的事情。一旦发生,订阅该事件的对象就会响应该事件。在现实世界的例子中,它很容易理解。我会举一个板球的例子。让我们把击球当作一个事件。因此,一旦球被击球手击中,外野手就会跑向球,裁判会追踪球,击球手也会留意球的位置。观众已经准备好跳起来大喊大叫了。所以,在这里击球是一个事件。击球手、裁判员、守场员和观众是响应该事件的对象。 Event 完全不知道谁将以何种方式响应它。响应的对象需要首先订阅该事件,之后每当事件被触发时,他们都会收到通知并可以以他们想要的任何方式处理该事件,比如我们的外野手、裁判、观众、击球手以他们自己的方式处理。在 dotnet 中,它们使用事件处理程序来处理事件。这只是与现实世界场景相关的简要描述。要进一步阅读并更好地理解,请阅读 O'Reilly 的 Head First C# 中的主题。它确实很好地解释了与现实世界示例相关的这些主题。一旦你经历了它,你就能够捕获它并牢记在心。希望对您有所帮助:)

关于c# - 事件和委托(delegate)困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com