Time of Update: 2018-12-06
文章目錄 對委託的操作(+,-), 多播委託:匿名委託:聲明方式:枚舉類型作為位標誌 1. 委託 可以參考 VS2010 內建例子對委託的操作(+,-), 多播委託:匿名委託: 2. 事件1. 定義一個字串列表類(繼承自List<string>)2. 定義委託3. 根據委託定義事件4. 定義激發事件的方法5. 定義事件處理函數6. 訂閱namespace MyEvent{ class Program {
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 組合模式聽說去很玄乎,其實也並不複雜。為什麼?大家可以先想一下資料結構裡面的二叉樹是怎麼回事。為什麼就是這麼一個簡單的二叉樹節點既可能是分葉節點,也可能是父節點?[cpp] view plaincopytypedef struct _NODE { void* pData; struct _NODE* left; struct _NODE* right;
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 現在的生活當中,我們離不開各種電子工具。什麼膝上型電腦、手機、mp4啊,都離不開充電。既然是充電,那麼就需要用到充電器。其實從根本上來說,充電器就是一個個普通的適配器。什麼叫適配器呢,就是把220v、50hz的交流電壓編程5~12v的直流電壓。充電器就幹了這麼一件事情。 那麼,這樣的一個充電適配器,我們應該怎麼用c++描述呢? [cpp] view
Time of Update: 2018-12-06
經過測試幾十張圖片,得出的結論是,c#用TPL(工作平行程式庫)比 c++ amp方式快 2-10倍release vs2012 rc 對了,你需要一塊dx11的顯卡,如果沒有,就是軟體類比的大概,速度比gpu慢幾十倍上百倍。 從測試可知,千萬像素的時候才差不多持平, 這是我電腦不行咩,還是顯卡不行,怎麼會這樣的結果準備周一去公司電腦試試,真奇怪 對了,這次測試速度比以前用wpf的要慢,主要差別就是鎖定記憶體的方式不同,等有空測試一下 wpf下的速度一、代碼1. c# TPL 1:
Time of Update: 2018-12-06
http://blog.csdn.net/feixiaoxing/article/details/7194756#comments【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 在很多人的眼裡,C語言和linux常常是分不開的。這其中的原因很多,其中最重要的一部分我認為是linux本身就是C語言的傑出作品。當
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 原型模式本質上說就是對當前資料進行複製。就像變戲法一樣,一個鴿子變成了兩個鴿子,兩個鴿子變成了三個鴿子,就這麼一直變下去。在變的過程中,我們不需要考慮具體的資料類型。為什麼呢?因為不同的資料有自己的複製類型,而且每個複製函數都是虛函數。 用C++怎麼編寫呢,那就是先寫一個基類,再編寫一個子類。就是這麼簡單。[cpp] view
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 裝飾模式是比較好玩,也比較有意義。其實就我個人看來,它和責任鏈還是蠻像的。只不過一個是比較判斷,一個是迭代處理。裝飾模式就是那種迭代處理的模式,關鍵在哪呢?我們可以看看資料結構。[cpp] view
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 對於程式設計員來說,makefile是我們繞不過去的一個坎。可能對於習慣Visual C++的使用者來說,是否會編寫makefile無所謂。畢竟工具本身已經幫我們做好了全部的編譯流程。但是在Linux上面,一切變得不一樣了,沒有人會 為你做這一切。編代碼要靠你,測試要靠你,最後自動化編譯設計也要靠你自己。想想看,如果你下載了一個開源軟體,卻因為自動化編譯失敗,那將會在很大程度
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 模板對於學習C++的同學,其實並不陌生。函數有模板函數,類也有模板類。那麼這個模板模式是個什麼情況?我們可以思考一下,模板的本質是什麼。比如說,現在我們需要編寫一個簡單的比較模板函數。[cpp] view plaincopytemplate <typename type> int compare (type a, type b) { return a >
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 策略模式就是用統一的方法介面分別對不同類型的資料進行訪問。比如說,現在我們想用pc看一部電影,此時應該怎麼做呢?看電影嘛,當然需要各種播放電影的方法。rmvb要rmvb格式的方法,avi要avi的方法,mpeg要mpeg的方法。可是事實上,我們完全可以不去管是什麼檔案格式。因為播放器對所有的操作進行了抽象,不同的檔案會自動調用相應的存取方法。 [cpp] view
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 不知不覺當中,我們就到了最後一種設計模式,即訪問者模式。訪問者模式,聽上去複雜一些。但是,這種模式用簡單的一句話說,就是不同的人對不同的事物有不同的感覺。比如說吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜歡這兩種豆腐。四川的朋友可能更喜歡辣豆腐,江浙的人就可能對臭豆腐更喜歡一些。那麼,這種情況應該怎麼用設計模式表達呢?[cpp] view
Time of Update: 2018-12-06
【 聲明:著作權,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 同樣是x86的cpu,但是卻可以用不同形式的組合語言來表示。在window上面我們使用的更多是intel格式的組合語言,而在Linux系統上面使 用的更多的常常是AT&T格式的組合語言。那什麼是AT&T格式的彙編代碼呢?我們可以寫一個試試看。[cpp] view
Time of Update: 2018-12-06
C#中 DateTime 為結構類型, 表示在公元 0001 年 1 月 1 日午夜 12:00:00 到公元 9999 年 12 月 31 日晚上 11:59:59 之間的日期和時間.GPS裝置上的時間定義的一個double 型值, 其開始時間為 1899-12-30 00:00:00. 轉換方法如下:DateTime dt= new DateTime(1899,12,30); // 起始時間double TimeNow= GetGPSTime(); // 從裝置上擷取時間,
Time of Update: 2018-12-06
多線程應用中經常要跨線程訪問表單控制項, 但在 C#中是不允許直接從非擁有控制項的線程中訪問控制項的, 必須通過委託的方式安全調用, 如下樣本所示:public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Thread newThread = new Thread(new
Time of Update: 2018-12-06
雖然有 TabControl控制項, 但是為了減少主表單的代碼量, 可以將部分分頁的功能模組放置於一個 Form 中, 當調用時, 直接把這個 Form嵌入到一個 Panel中即可.樣本如下:要嵌入的 Form: public partial class FormEmbed : Form { public FormEmbed() { InitializeComponent(); } private
Time of Update: 2018-12-06
組件是一些可以重複使用的功能化的類.屬性(property)用於隱藏類中的欄位. 一般的將欄位設定成 private, 通過屬性安全的,受限制的訪問欄位; 同時, 在屬性中封裝附加的邏輯和規則,以處理所有可能的賦值方式.屬性是欄位和方法的一個交集, 即具有儲存和代碼限定訪問的功能, 一般定義如下:Accessmodifier Type PropertyName{ get { // get accessor } set {
Time of Update: 2018-12-06
在使用 TcpClient 網路連接中常常會發生用戶端串連異常斷開, 服務端需要設定檢測手段進行這種異常的處理. 對於短串連, 通過對 Socket 屬性 ReceiveTimeout 和 SendTimeout 設定適當的值, 當在進行讀/寫時逾時, 則會產生 SocketException 異常, 通過檢查這個異常並進行處理. 如下服務端串連處理程式碼範例: while (newClient.Connected &&
Time of Update: 2018-12-06
現在C#已經建議擯棄使用 Suspend, Resume 暫停/恢複線程, 也盡量少用 Abort方法中斷一個線程.建議使用線程的同步手段有: 、、, public Thread(ThreadStart start);另一種是帶參數(ParameterizedThreadStart 委託) --public Thread(ParameterizedThreadStart start);ParameterizedThreadStart 委託簽名:public delegate void
Time of Update: 2018-12-06
因為項目的中的資料是來源於網路, 而不是資料庫, 所有的table 都是動態建立的, 因此使用報表時也需要動態建立.具體樣本如下:1. MainForm 下 Data的 擷取: public DataTable table = new DataTable("myTable"); // 建立資料表資料 public void CreateDataTable() { table.Columns.Clear();