在我的班级中,我想声明一个其他班级可以订阅的事件。声明事件的正确方法是什么?
这不起作用:
public event CollectMapsReportingComplete;
你忘了提及type。对于非常简单的事件,EventHandler http://msdn.microsoft.com/en-us/library/system.eventhandler.aspx可能就足够了:
public event EventHandler CollectMapsReportingComplete;
有时您会想要声明自己的委托类型用于您的事件,从而允许您为事件使用自定义类型EventArgs
参数(参见 Adam Robinson 的评论):
public delegate void CollectEventHandler(object source, MapEventArgs args);
public class MapEventArgs : EventArgs
{
public IEnumerable<Map> Maps { get; set; }
}
您还可以使用通用的EventHandler http://msdn.microsoft.com/en-us/library/db0etb8x.aspxtype 而不是声明自己的类型:
public event EventHandler<MapEventArgs> CollectMapsReportingComplete;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)