一尘不染

代表的目的[重复]

c#

这个问题已经在这里有了答案

我在哪里使用代表?[已关闭] (8个答案)

7年前关闭。

重复:

事件和委托及其各自应用程序之间的区别

代表有什么优势?

我在哪里使用代表?

我想知道代表们的目的是什么。我没有用太多,也没想到什么。

在我的课程中,书面说明了代表是所有符合其签名的方法的蓝图。

另外,您可以将多个方法添加到一个委托中,然后将它们按照添加的顺序在彼此之后执行。这可能仅对影响局部变量的方法或不返回任何值的方法有用。

我读过C#将事件实现为委托,其记录为:

//Summary: Represents the method that
will handle an event that has no event
data.

//Parameters:

//sender: The source of the event.

//e: An System.EventArgs that contains no event data.

[Serializable]

[ComVisible(true)]

public delegate void EventHandler(object sender, EventArgs e);

不过,这还是有点令人困惑。有人可以给这个概念一个很好的,有用的例子吗?


阅读 225

收藏
2020-05-19

共1个答案

一尘不染

是的

您快到了。委托是指要调用的方法或函数。.NET使用事件来说..当有人按下此按钮时,我希望您执行这段代码。

例如,在使用GPS应用程序时:

public delegate void PositionReceivedEventHandler(double latitude, double longitude);

这表示该方法必须将两个double用作输入,并返回void。当我们定义一个事件时:

public event PositionReceivedEventHandler PositionReceived;

这意味着PositionRecieved事件调用的方法的定义与我们定义的PositionReceivedEventHandler委托相同。所以当你这样做

PositionRecieved += new PositionReceivedEventHandler(method_Name);

method_Name必须与委托匹配,以便我们知道如何执行该方法,期望使用什么参数。例如,如果您使用Visual
Studio设计器向按钮添加一些事件,则它将全部在期望对象和EventArgs参数的委托上工作。

希望对您有所帮助…

2020-05-19