重复:
Difference between events and delegates and its respective applications
What are the advantages of delegates?
Where do I use delegates?
我想知道委托(delegate)的目的是什么。我没怎么用过它们,也想不出什么东西。
在我的类(class)中,写到委托(delegate)是所有符合其签名的方法的蓝图。
此外,您可以向一个委托(delegate)添加多个方法,然后它们将按照添加的顺序依次执行。这可能只对影响局部变量的方法或不返回任何值的方法有用。
我读过 C# 将事件实现为委托(delegate),记录如下:
//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);
不过,这还是有点令人困惑。有人可以举一个很好的、有用的例子来说明这个概念吗?
是的,
你快到了。委托(delegate)指的是要调用的方法或函数。 .NET 使用事件来表示.. 当有人按下这个按钮时,我要你执行这段代码。
例如,在使用 GPS 应用程序时:
public delegate void PositionReceivedEventHandler(double latitude, double longitude);
这表示该方法必须将两个 double 作为输入,并返回 void。当我们开始定义事件时:
public event PositionReceivedEventHandler PositionReceived;
这意味着 PositionRecieved 事件调用了一个与
我们定义的 PositionReceivedEventHandler 委托(delegate)。所以当你这样做的时候
PositionRecieved += new PositionReceivedEventHandler(method_Name);
method_Name 必须与委托(delegate)匹配,以便我们知道如何执行该方法,它需要什么参数。例如,如果您使用 Visual Studio 设计器向按钮添加一些事件,它将全部在需要对象和 EventArgs 参数的委托(delegate)上工作。
希望对一些人有所帮助...