当初csdn提供bolg的时候,我也凑热闹开通了一个,由于几年不做技术啦,一直也没开写。如今来到了新单位,居然又要开始做一些开发工作了,唉,想当年,俺用的是Vb6,开发了许多的GIS软件,那叫一个熟啊,现如今重操编程旧业,要用C#开发ArcEngine了,两个东东对我而言都是很新鲜的啊,学吧...
突然想到我还有个csdn bolg,写写学习心得吧, 今天是我学C#的第3天,ArcEngine的第4天,觉得delegate和事件好费解,可开发ArcEngine又很常用,比如:
((ICustomizeDialogEvents_Event)m_CustomizeDialog).OnCloseDialog += new ICustomizeDialogEvents_OnCloseDialogEventHandler(this.OnCloseDialog);
于是对比着button的click事件琢磨了一下这句代码的含义,理解如下:
(ICustomizeDialogEvents_Event)m_CustomizeDialog的作用是QI from ICustomDialog to ICustomizeDialogEvents_Event,对了C#里面习惯叫强制类型转换,QI(Query Interface)是AO里的叫法;然后就像.net frame的button类已经为开发者建立了(继承了)System.EventHandler这个delegate一样,ESRI.ArcGIS.ToolbarControl类也已经建立(应该是继承)了一个名为stomizeDialogEvents_OnCloseDialogEventHandler的delegate;同样的,.net frame的button类定义了button1.Click事件,这个事件其实是一个实例化的System.EventHandler(前面建立的delegate),ESRI.ArcGIS.ToolbarControl类也定义了ESRI.ArcGIS.Toolba
C# ArcEngine开发初探:delegate与事件的理解

本文是作者学习C#和ArcEngine的心得,主要探讨了delegate和事件的概念,通过实例解析了如何在ArcEngine开发中使用事件,以及与.NET Framework中button的click事件进行对比,帮助理解delegate和事件的应用。
最低0.47元/天 解锁文章
1377

被折叠的 条评论
为什么被折叠?



