这个问题已经在这里有了答案 :
我在哪里使用代表?[已关闭] (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);
不过,这还是有点令人困惑。有人可以给这个概念一个很好的,有用的例子吗?
是的
您快到了。委托是指要调用的方法或函数。.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参数的委托上工作。
希望对您有所帮助…