Time of Update: 2018-12-05
1.快速上手 邏輯上刪掉一段代碼最好不要用注釋,而是用【#if 0 statements #endif】 如果有些聲明需要用於幾個不同的源檔案中,則可以把相應的聲明放在同一個標頭檔中,避免多個地方複製,方便維護。使用時用#include引入標頭檔即可。 2.基本概念3.資料4.語句 C不存在專門的指派陳述式,如【x = y + 3;】確切的說是運算式,而不是指派陳述式,因為直接寫【y +
Time of Update: 2018-12-05
7、記憶體耗盡怎麼辦?如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc和new將返回NULL指標,宣告記憶體申請失敗。通常有三種方式處理“記憶體耗盡”問題。 (1)判斷指標是否為NULL,如果是則馬上用return語句終止本函數。例如:void Func(void){ A *a = new A; if(a == NULL) { return; } …}(2)判斷指標是否為NULL,如果是則馬上用exit(1)終止整個程式的運行。例如:void Func(void){ A *a =
Time of Update: 2018-12-05
C#基礎-從clr底層說起(一) 引言 最近一直在讀《Clr via C#》(Jeffrey Richter)這本書,確實寫的挺不錯的,才看到不到兩百頁,實在汗顏。看的還沒忘的多,為了改變些什麼,我就寫下這個系列,不知道自己能不能寫好,所以先拋磚引玉下,我打算從底層開始寫起,包括線程堆棧和託管堆棧的記憶體配置、多線程等算是比較進階的技術吧,以前也寫過幾篇,現在看來太低級了,大家可以無視之。 昨天從鄭州殺向上海,憑的就是一腔的熱情還有不服輸的信念。首先要感謝大石頭的大力支援和打擊,
Time of Update: 2018-12-05
利用委託輕鬆實現,子表單向父表單傳值。子表單實現代碼: //聲明委託 public delegate void MyDelMsg(string msg); //定義一個委託變數 public MyDelMsg myDelMsg; private void button1_Click(object sender, EventArgs e) { if (myDelMsg!=null)
Time of Update: 2018-12-05
/// <summary> /// 遞迴選中所有的自節點 /// </summary> /// <param name="nodeThis">TreeNode</param> private void checkAllChildNode(TreeNode nodeThis) { foreach (TreeNode childNode in n
Time of Update: 2018-12-05
原文地址不詳,見諒。MSDN解釋如下:“協變”是指能夠使用與原始指定的衍生類別型相比,派生程度更大的類型。* a* @' D+ Y. C" G* w“逆變”則是指能夠使用派生程度更小的類型。解釋的很正確,大致就是這樣,不過不夠直白。1 L ~) F3 e( I6 |直白的理解:“協變”->”和諧的變”->”很自然的變化”->string->object :
Time of Update: 2018-12-05
c#中的對象分為實值型別和參考型別,二者最大的區別在於資料的儲存方式和儲存位置.WINDOWS作業系統使用虛擬定址系統來管理程式運行時產生的資料存放.簡單的說,該系統管理著一個記憶體地區,在該地區中劃撥出一部分出來專門存放實值型別變數,稱為堆棧,堆棧採用先進後出的原則,將實值型別變數從地區的最高地址位開始向低位地址儲存,先進後出,後進先出的管理方式保證了實值型別變數在出了範圍後能即使的清除佔用的記憶體地區,由於堆棧速度快,所儲存的資料一般不太大,這部分一般不需要使用者專門操作.
Time of Update: 2018-12-05
Component類預設對事件鏈做了支援,通過操作其Events屬性,可大大簡化了事件的添加移除的邏輯. Events是一個Key-EventHandler的集合,但並沒有按雜湊表的方式進行實現,具體的實現方式不在此累述. 任何繼承自Component的子類都能從此獲益,如果需要新增事件可以按如下方法處理: 先說明一個細節: 如果我們要添加一個EventHandler形式的委託作為事件的類型:即返回void,參數列表為(object,EventArgs),
Time of Update: 2018-12-05
因為一般都用T-SQL來執行資料庫操作,偶爾現在轉到用預存程序,竟然寫不來調用過程的傳回值了,查了很多資料,都不詳細,或者沒到點上,也許是我比較笨,呵呵。C# 原始碼 1 /// <summary> 2 /// 校正使用者 3 /// </summary> 4 /// <param name="user">使用者資訊</param> 5 /// <returns&
Time of Update: 2018-12-05
SDL(Simple DirectMedia Layer)是一套開放原始碼的跨平台多媒體開發庫,使用C語言寫成。SDL提供了數種控製圖像、聲音、輸出入的函數,讓開發人員只要用相同或是相似的代碼就可以開發出跨多個平台(Linux、Windows、Mac OS X等)的應用軟體。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。SDL使用GNU寬通用公用許可證為授權方式,意指動態連結(dynamic link)其庫並不需要開放本身的原始碼。因此諸如《雷神之錘4》(Quake
Time of Update: 2018-12-05
C++中,如果父類中的函數前邊標有virtual,才顯現出多態。如果父類func是virtual的,則Super *p =new Sub();p->func(); // 調用子類的func如果不是virtual的,p->func將調用父類原來的函數。 Java中,不管寫不寫virtual都是多態的,子類的同名函數會override父類的。與C++很不同的是,初始化的過程也不相同。在還未初始化子類的時候,子類的同名函數就已經覆蓋了父類的了。例如:public class Super {
Time of Update: 2018-12-05
堆的定義: n個關鍵字序列Kl,K2,…,Kn稱為堆,若且唯若該序列滿足如下性質(簡稱為堆性質): (1)ki<=k(2i+1)且ki<=k(2i+2)(1≤i≤ n),當然,這是小根堆,大根堆則換成>=號。 //ki相當於二叉樹的非葉結點,K2i則是左孩子,k2i+1是右孩子 若將此序列所儲存的向量R[1..n]看做是一棵完全二叉樹的儲存結構,則堆實質上是滿足如下性質的完全二叉樹:
Time of Update: 2018-12-05
·關於C#中timer類 在C#裡關於定時器類就有3個 1.定義在System.Windows.Forms裡 2.定義在System.Threading.Timer類裡 3.定義在System.Timers.Timer類裡 System.Windows.Forms.Timer是應用於WinForm中的,它是通過Windows訊息機制實現的,類似於VB或Delphi中的Timer控制項,內部使用API
Time of Update: 2018-12-05
private void Copy() { string aimpath=@"C:\Documents and Settings\Administrator\「開始」菜單\程式\啟動\Shut_Explorer.exe";// string path = System.IO.Directory.GetCurrentDirectory()+"\\Shut_Explorer.exe"; //?? string
Time of Update: 2018-12-05
同樣的BFS,這種方法相對記憶體佔用較小。複製別人的代碼,學習了!題目描述:sun所在學校每年都要舉行電腦節,今年電腦節有一個新的趣味比賽項目叫做闖迷宮。sun的室友在幫電腦節設計迷宮,所以室友就請sun幫忙計算下走出迷宮的最少步數。知道了最少步數就可以輔助控制比賽難度以及去掉一些沒有路徑到達終點的map。比賽規則是:從原點(0,0)開始走到終點(n-1,n-1),只能上下左右4個方向走,只能在給定的矩陣裡走。輸入:輸入有多組資料。每組資料輸入n(0<n<=100),然後輸入n*n的
Time of Update: 2018-12-05
題目描述: 輸入N個學生的資訊,然後進行查詢。輸入: 輸入的第一行為N,即學生的個數(N<=1000)接下來的N行包括N個學生的資訊,資訊格式如下:01 李江 男 2102 劉唐 男 2303 張軍 男 1904 王娜 女 19然後輸入一個M(M<=10000),接下來會有M行,代表M次查詢,每行輸入一個學號,格式如下:02030104輸出: 輸出M行,每行包括一個對應於查詢的學生的資訊。如果沒有對應的學生資訊,則輸出“No Answer!”範例輸入:401 李江 男 2102
Time of Update: 2018-12-05
輸入: 每組測試資料可能有多組輸入,對於每一組輸入, 輸入的第一行包括兩個整數S(1 <= S <= 1000)和C(1<=C<=100),S代表地鐵的總空間的大小,C代表v一共儲存的炸藥的個數。 接下來的C行每行包括兩個1到100(包括1和100)的整數,分別表示這個炸藥所需要的空間以及它所能產生的破壞力。 輸出:
Time of Update: 2018-12-05
一.雜湊表(Hashtable)簡述 在.NET
Time of Update: 2018-12-05
這裡介紹C# CheckStatus()方法,以及介紹調用Timer.Dispose()方法刪除了timer對象,主線程於是跳出迴圈,終止程式。 C#語言還是比較常見的東西,這裡我們主要介紹C# CheckStatus()方法,包括介紹設定一個定時器,定時執行使用者指定的函數等方面。 Timer類:設定一個定時器,定時執行使用者指定的函數。 定時器啟動後,系統將自動建立一個新的線程,執行使用者指定的函數。 Timer timer = new Timer(timerDelegate, s,1
Time of Update: 2018-12-05
由於 Hashtable 和 Dictionary 同時存在, 在使用情境上必然存在選擇性, 並不任何時刻都能相互替代.[1] 單線程程式中推薦使用 Dictionary, 有泛型優勢, 且讀取速度較快, 容量利用更充分.[2] 多線程程式中推薦使用 Hashtable, 預設的 Hashtable 允許單線程寫入, 多線程讀取, 對 Hashtable 進一步調用 Synchronized() 方法可以獲得完全安全執行緒的類型. 而 Dictionary 非安全執行緒, 必須人為使用