C 開發ArcEngine的一點學習心得

2021-04-07 06:16:19 字數 1958 閱讀 9194

當初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 inte***ce)是ao裡的叫法;然後就像.net frame的button類已經為開發者建立了(繼承了)system.eventhandler這個delegate一樣,esri.arcgis.*******control類也已經建立(應該是繼承)了乙個名為stomizedialogevents_onclosedialogeventhandler的delegate;同樣的,.net frame的button類定義了button1.click事件,這個事件其實是乙個例項化的system.eventhandler(前面建立的delegate),esri.arcgis.*******control類也定義了esri.arcgis.*******control.icustomizedialogevents_event.onclosedialog事件;(不同之處在於這個事件定義在了icustomizedialogevents_event介面下),這個事件其實是乙個例項化的icustomizedialogevents_onclosedialogeventhandler(前面建立的delegate),.net frame的button類的button1.click事件用法是自定義乙個方法,然後在建構函式中呼叫該方法的多點delegate,esri.arcgis.*******control.icustomizedialogevents_event.onclosedialog事件的用法與此類似。

事實上可以這樣理解delegate和event,下面是c#高階程式設計中的一段例程,我加上了自己理解的注釋:

事件伺服器類負責定義delegate並建立乙個event型別的delegate實力,這樣事件處理器類可以通過這個delegate例項傳遞自己定義的方法。

事件伺服器類:

using system;

namespace delegatesample}}

}public enum requesttype;

public class userrequesteventargs:eventargs //定義事件引數的方法!!

public requesttype request}}

}事件處理器類 :

using system;

using system.windows.forms;

namespace delegatesample

protected void userrequesthandler(object sender,userrequesteventargs e)}}

public class managerstaffmonitor//事件處理器類/物件(接受事件通知,並對事件作出相應處理)

protected void userrequesthandler(object sender,userrequesteventargs e)

}public class mainclass //主程式}}

敏捷開發的一點認識

敏捷開發是一種以人為核心 迭代 循序漸進的開發方法。在敏捷開發中,軟體專案的構建被切分成多個子專案,各個子專案的成果都經過測試,具備整合和可執行的特徵。換言之,就是把乙個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態 目前大部分公司是敏捷開發,分配合適的...

遊戲開發一點總結

一定要對整個策劃案有全盤得理解,不可以只關注自己負責得部分,因為遊戲是乙個整體,要聯動,不然得話再開過程中就考慮不到要和其他系統進行互動。對自己負責部分得策劃要重點關注,同時有不是特別理解得地方要及時和策劃溝通。策劃資料配表得,要和策劃定好關鍵字段,判斷字段,不可輕易改動。在前期沒有美術,沒有效果圖...

C語言的一點

define tosh assign pin name,port,bit static inline void tosh set name pin static inline void tosh clr name pin 如果在程式中寫了這樣的乙個式子tosh assign pin inc,a,2 ...