Time of Update: 2018-12-08
2006-06-03
Time of Update: 2018-12-08
通過學習VC6++,瞭解了一下有關Menu的基本操作。得到當前View中的菜單CMenu *pTopMenu;pTopMenu = AfxGetMainWnd()->GetMenu();得到菜單上某一菜單CMenu *pTopMenu, *pSubMenu;pTopMenu = AfxGetMainWnd()->GetMenu();pSubMenu = pTopMenu->GetSubMenu(2); // 從0開始向菜單中添加一項CString menuName =
Time of Update: 2018-12-08
問題:下面的定義中,哪個是錯誤的1 class C<U,V>{}2 class D:C<string,int>{}3 class E<U,V>:C<U,V>{}4 class F<U,V>:C<string,int>{}5 class G:C<U,V>{}解釋1 泛型定義2 D是普通類,C是執行個體化的泛型類垿IMG
Time of Update: 2018-12-08
堆棧是系統使用是臨時儲存地區。它是後進先出的資料結構。C++主要將堆棧用於函數調用。當函數調用時,各種資料被推入堆棧頂部;函數終止後的返回地址、傳遞給函數的參數、函數返回的結果以及函數中聲明的局部變數等等。因此當函數A調用函數B調用函數C,堆棧是增長了,但調用完成後,堆棧又縮小了。堆是一種長期的儲存地區。程式用C++的new操作符分配堆。對new的調用
Time of Update: 2018-12-08
VC調用VB的控制項,最大的痛點,就是資料類型不一致。VB是有Variant這個資料類型的,但是問題就出在這裡,VC要使用VB返回的Variant,就像一隻狐狸要吃一隻刺蝟,食物就在面前,可這很難下口。昨天下午找了半天,也沒啥進展,今天終於有所突破,本質就是COM給帶來的。我說得不透徹,文章講得很好:http://www.roblocher.com/whitepapers/oletypes.aspx VC、VB、COM之間的關係,只有好好看看微軟出得的書,恐怕才能搞明白。Technorati
Time of Update: 2018-12-08
字元 說明 樣本 輸出 C貨幣string.Format("{0:C3}", 2)$2.000D十進位string.Format("{0:D3}", 2)002E科學計數法1.20E+0011.20E+001G常規string.Format("{0:G}", 2)2N用分號隔開的數字string.Format("{0:N}", 250000)250,000.00X十六進位string.Format("{0:X000}", 12)Cstring.Format("{0:000.000}", 12.
Time of Update: 2018-12-08
註:C#3.0, VB9.0這裡只是一些比較容易弄不清的地方,其它關鍵字的差異(比如abstract 和 MustInherit之類的)相信都是很簡單的了.模組(Module): 模組就是C#裡的靜態類,但是,在同一命名空間裡的其它類型裡,調用模組裡定義的方法不需要加模組類的名稱.比如 AAA.BB.XXModule有個M()方法,則在AA.BB.XXXXClass裡可以直接寫: M(),而不用寫XXModule.M()數組聲明: Dim a = new Int() {1, 2, 3} ,或者:
Time of Update: 2018-12-08
沒有使用C++/CLI之前,我很懷疑它存在的意義.因為C#的文法更清爽,運行效率也不比C++差多少.C++本身就很複雜了,再乘以CLI的複雜度,我不能想出人們為什麼會學習它,使用它. 但是在使用C#的過程中,漸漸發現.Net類庫不夠豐富,有很多功能必須通過P/Invoke來實現.一般常用的Windows API函數還好說,介面通常比較簡單,DllImport + IntPtr已經足夠了,而且還有www.pinvoke.net這個很大的資產庫,使用起來還是相當方便的.
Time of Update: 2018-12-08
1、DateTime 數字型 System.DateTime currentTime=new System.DateTime(); 1.1 取當前年月日時分秒 currentTime=System.DateTime.Now; 1.2 取當前年 int 年=currentTime.Year; 1.3 取當前月 int 月=currentTime.Month; 1.4 取當前日 int 日=currentTime.Day; 1.5 取當前時 int 時=currentTime.Hour; 1.6
Time of Update: 2018-12-08
正在裝載資料…… 用了.Net工具來寫程式的人,不難發現它有個好處,就是使用的記憶體不用釋放,尤其在使用C#或者VB.Net來寫程式,因為程式所佔用的記憶體都是受系統託管的,因此記憶體的釋放不需要程式員去操心。 很多人從C語言或者C++等等語言轉型過來,對於這一點往往很不適應,例如定義一個數組或者去new一個對象的時候,都習慣在使用完畢後用Delete語句去釋放它,然而在C#中沒有提供類似的語句來進行同樣的操作。 那麼有人就問,是不是.Net不用去釋放記憶體,或者問假如要去顯示釋放一個對象,該如
Time of Update: 2018-12-08
指標可以說是C和C++ 中特有的,出於安全性的考慮,微軟出的C# 中取消了指標的運用,但是,在C#中仍有關鍵字 unsafe 關鍵字裡 可以編寫C++ 代碼。因為 unsafe 是要以時間和空間消耗為代價的。 所以不經常使用,其主要用途是在處理大量的數組的時候,有大量的地址在變化的時候用 unsafe 關鍵字就有可能贏得更大的效力。 前不久, 在和朋友討論一個問題,問題的描述如下代碼所示:CodeCode highlighting produced by Actipro
Time of Update: 2018-12-08
最近偶簡單的複習了下在C#中涉及到繼承這個特性時,所需要用到的關鍵字,其中有一些關鍵點,特地整理出來,方便大家查閱。在微軟的一次筆試和面試中也提到了這個問題:一、在C#中,new這個關鍵字使用頻率非常高,主要有3個功能: a) 作為運算子用來建立一個對象和調用建構函式。 b) 作為修飾符。 c) 用於在泛型聲明中約束可能用作型別參數的參數的類型。
Time of Update: 2018-12-08
泛型是 C#2.0 語言和公用語言運行庫 (CLR) 中的一個新功能。泛型將型別參數的概念引入 .NET Framework,型別參數使得設計如下類和方法成為可能:這些類和方法將一個或多個類型的指定延遲到用戶端代碼聲明並執行個體化該類或方法的時候。例如, 通過使用泛型型別參數 T,可以編寫其他用戶端代碼能夠使用的單個類,而不致引入運行時強制轉換或裝箱操作.使用泛型型別可以最大限度地重用代碼、保護類型的安全以及提高效能。泛型最常見的用途是建立集合類。 .NET Framework 類庫在
Time of Update: 2018-12-08
大家都知道,一個類的私人成員只能在他的內部訪問!但是不知道大家注意到沒有,實際上在C#中一個類的執行個體是可以訪問同一個類的另外一個執行個體的私人成員的。請看這段簡單的代碼public class MyClass { private int i = 0; public void Function() { MyClass a = new MyClass();
Time of Update: 2018-12-08
為什麼引入Duck Typing? ADuck,BDuck,XDuck…………. 為linq
Time of Update: 2018-12-08
需求1. 雙擊表單,彈出無標題的messageBox源碼using System;using System.Windows.Forms; namespace ReflexilDemo{ public class DemoForm : Form { public DemoForm() { //InitializeComponent();
Time of Update: 2018-12-08
匿名方法匿名方法與具名方法在本質上是相同的,使用匿名方法後編譯器在定義匿名方法的類的外部動態產生具名方法。 /// <summary> /// 定義委託 /// </summary> delegate void DoWorkDelegate();class Program { static void Main(string[] args) { //具名方法的委託
Time of Update: 2018-12-08
先說一下“即興編程”,在網上搜尋了一下,還真有人用過這個詞,不知道他的意思是不是和我想表達的一樣;說一下我的意思吧,要完成一個“功能”或是一個“小程式”時,先把要寫的功能的思路“縷”一下(地方音,意思為“梳理”。),然後,就動手開寫,寫的過程中不能間斷,思維高度集中,按照“既定”的思路一直寫下去,直至功能完成,然後,編譯、運行。
Time of Update: 2018-12-08
最近在搞一個C++項目的封裝工作,原項目是個native c++的項目(還是個從linux下移過來的),封裝的目地是打算在.net下(或者說是在C#中)使用這些C++的類和它們的方法。 封裝工作的第一步,先找出原C++項目中的public class和public method. 其實它們大多被定義.h檔案中,所以把標頭檔拷貝過來是個不錯的辦法。然後在class前上ref 把它變成managed class. 模板如下:代碼Code highlighting produced by
Time of Update: 2018-12-08
最近研究演算法,把常用的演算法用C#實現了。整理了一下列在這裡,以備尋找。排序演算法交換排序冒泡排序快速排序奇偶排序雞尾酒排序Gnome SortComb Sort插入排序 插入排序 希爾排序選擇排序 選擇排序 堆排序合并排序 合并排序