在一些 ASP.NET 示例中,我看到事件与委托一起使用像这样有时没有他们像这样.
请解释!
所有事件都是委托类型(它们都继承自EventHandler
继承自MulticastDelegate
其间断自Delegate
)。有时(或者我宁愿说大多数时候)不需要声明您自己的自定义委托不过对于一个活动来说。您可以使用现有的委托,只要它们与您的活动签名匹配即可。随着介绍EventHandler<T>
在 .NET Framework 2.0 中,对自定义事件委托的需求几乎消失了(只要遵循框架的事件设计)。因此,执行以下操作:
// declare an event with a custom delegate type
public delegate void MyCustomEventHandler(object sender, EventArgs e);
public event MyCustomEventHandler SomeCustomEvent;
...相当于这样:
// declare an event with an existing delegate type
public event EventHandler SomeCustomEvent;
如果你有一些习惯EventArgs
类,您可以使用泛型EventHandler<T>
为您的活动:
class MyCustomEventArgs : EventArgs
{
// you custom stuff here
}
public event EventHandler<MyCustomEventArgs> SomeCustomEvent;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)