Time of Update: 2017-01-13
首先我們來科普一下:什麼是堆?說到堆,又忍不住說到了棧!什麼是 棧?1、什麼是堆:堆是大家共有的空間,分全域堆和局部堆。全域堆就是所有沒有分配的空間,局部堆就是使用者指派的空間。堆在作業系統對進程
Time of Update: 2017-01-13
程式碼檢閱中偶爾會發現一些通用的效能問題,在此作記錄分享。需求我們有時候需要延遲刪除 List<T> 中的元素,那時候會先把元素設為 null,最後才一次移除所有空元素。最佳化前static void RemoveNull<T>(List<T> list) { for (int i = list.Count - 1; i >= 0;
Time of Update: 2017-01-13
C++類中的虛表結構是C++物件模型中一個重要的知識點,這裡咱們就來深入分析下虛表的在記憶體中的結構。C++一個類中有虛函數的話就會有一個虛表指標,其指向對應的虛表,一般一個類只會有一個虛表,每個虛表有多個”插槽”,每個插槽存放一個虛函數的地址。插槽中的內容可以被覆蓋,子類如果重寫了父類中的虛函數,則插槽中對應位置的資料被覆蓋。虛表存放的是虛函數地址,不管該虛函數是public還是private的。光文字說明不太形象,下面上一張虛表結構的樣本圖:從圖中看出,虛表指標確實是
Time of Update: 2017-01-13
python中檔案讀寫的例子初學者在學習物件導向的程式設計語言時,或多或少的都些疑問,我們寫的代碼與最終生編譯成的代碼卻
Time of Update: 2017-01-13
資料結構與演算法(C#實現)系列---樹(二) Heavenkiller(原創) public class InOrder:IPrePostVisitor
Time of Update: 2017-01-13
概述最常用於向 Excel 活頁簿傳輸資料的技術是自動化。利用“自動化”,您可以調用特定於 Excel 任務的方法和屬性。“自動化”給您提供了指定資料在活頁簿中所處的位置、將活頁簿格式化以及在運行時進行各種設定的最大的靈活性。利用“自動化”,您可以使用多種技術來傳輸資料: •逐個儲存格地傳輸資料•將數組中的資料轉送到由儲存格組成的地區。•使用 CopyFromRecordset 方法向儲存格範圍傳輸 ADO 記錄集中的資料。•在 Excel
Time of Update: 2017-01-13
using System;using System.Collections;namespace XXXXX{ public class Expression { private Expression() {} #region No01.運算式分割為ArrayList形式 ///
Time of Update: 2017-01-13
#undef debug#define debugdisplay#undef debugdictionaryusing System;using System.Collections;namespace LZW{ public class cLZW { #region Constrcut public
Time of Update: 2017-01-13
我感覺聲音的播放比較簡單。我們從播放聲音開始。為什麼我這麼覺得?我也不知道。這裡是展示最最最最最簡單的DirectX播放聲音的例子,我盡量省略了無關的代碼。最後的代碼只有19行,夠簡單了吧?準備工作:1.安裝了DirectX SDK(有9個DLL檔案)。這裡我們只用到MicroSoft.DirectX.dll 和
Time of Update: 2017-01-13
有些書上也稱“代表”或“委託”。 C#中取消了指標的概念。對指標戀戀不捨的程式員可以有兩種解決方案:聲明“非安全”(unsafe)程式碼片段然後在其中使用指標或者使用C#的一個參考型別——“代理”(delegate)。“代理”相當與C中的函數指標原型,區別是C#是型別安全的。“代理”(delegate)(代表、委託):“代理”是型別安全的並且完全物件導向的。(1)在C#中,所有的代理都是從System.Delegate類派生的(deleg
Time of Update: 2017-01-13
裝箱和拆箱:任何實值型別、參考型別可以和object(對象)類型之間進行轉換。裝箱轉換是指將一個實值型別隱式或顯式地轉換成一個object類型,或者把這個實值型別轉換成一個被該實值型別應用的介面類型(interface-type)。把一個實值型別的值裝箱,就是建立一個object執行個體並將這個值複製給這個object,裝箱後的object對象中的資料位元於堆中,堆中的地址在棧中。被裝箱的類型的值是作為一個拷貝賦給對象的。如:int i = 10;object obj = i;
Time of Update: 2017-01-13
C#中方法的參數有四種類型:-值參數:不含任何修飾符。方法中的形參是實參的一份拷貝,形參的改變不會影響到記憶體中實參的的值,實參是安全的。-引用參數:以ref修飾符聲明。傳遞的參數實際上是實參的指標,所以在方法中的操作都是直接對實參進行的,而不是複製一個值;可以利用這個方式在方法調用時雙向傳遞參數;為了以ref方式使用參數,必須在方法聲明和方法調用中都明確地指定ref關鍵字,並且實參變數在傳遞給方法前必須進行初始化。-輸出參數:以out修飾符聲明。和ref類似,它也是直接對實參進行操作。在方法聲
Time of Update: 2017-01-13
C#中數組是參考型別,C#定義整型數組方式是:int [] intArray = {1,2,3};或int [] intArray = new int[10];而C++中定義整型數組的方式是:int intArray[] = {1,2,3};或int * intArray = new
Time of Update: 2017-01-13
訪問一個類的成員變數可以有兩種方式:域、屬性。域作為public類型的成員變數訪問,而屬性不能直接進行訪問,必須通過訪問器(accessors)進行。域(field)域(field)-域表示與對象或類相關聯的變數。-域的聲明中如果加上了readonly修飾符,表明該域為唯讀域。對於唯讀域我們只能在域的定義中和它所屬類的建構函式中進行修改。在其他情況下,域是“唯讀”的。-static
Time of Update: 2017-01-13
我是做Socket的新手,最近做了一個Socket用戶端程式,串連Server的時候,如果server存在,並且允許串連的話,程式無錯,正常執行;但是如果Server不存在,或者拒絕串連,程式就會卡住,此時不提示出錯。開始我以為是沒有Catch異常,但是檢查了程式,異常情況都Catch掉了,程式還是卡。請各位大蝦幫忙指正!謝謝,以下是我這個模組的代碼!using System;using System.Collections;using System.ComponentModel;
Time of Update: 2017-01-13
C# FAQ for C++ programmers 1. What is C#?[Introduction] C# is a programming language designed by Microsoft. It is loosely based on C/C++, and bears a striking similarity to Java. Microsoft describe C# as follows:"C# is a simple, modern,
Time of Update: 2017-01-13
用C#實現簡單的控制項數組 我的一個同學在做計算機程式,另一個同學在做井字棋遊戲。這兩個程式有個共同的特點:包含數個具有同類功能的控制項(計算機的數字按鈕及井字棋的九個落子位)。如果一個個地建立這些控制項,不得不寫大量重複的代碼,修改起來比較麻煩。一個更好的選擇是建立控制項數組。下面是Button數組的簡單實現: Button[] btns = new
Time of Update: 2017-01-13
實現方式:利用Microsoft.win32類提供的註冊表類訪問系統註冊表擷取ODBC資料服務列表。具體實現: Microsoft.win32提供了RegistryKey類,用來訪問系統的註冊表。 ///定義註冊表子Path string strRegPath = @"SOFTWAREODBCODBC.INIODBC
Time of Update: 2017-01-13
首先介紹一下常用的幾個功能:Compare(str1,str2)——比較兩個字串 str1,str2的大小,如果大於返回正數,等於返回0,小於返回負數!IndexOf——定位字串中第一次出現某個給定字串的位置PadLeft和PadRight——在字串的開始和結尾用指定的輸入鍵台字串ToLower和ToUpper把字串轉換為小寫或大寫形式Trim——刪除首尾空白String.Replace——用指定的字元替換字串中的指定字元。C#中字串的建立過程:例如定義變數
Time of Update: 2017-01-13
資料結構與演算法(C#實現)系列---樹(一) Heavenkiller(原創)首先我們給樹下一個定義:樹是一個有限的、非空的結點集,T={r} or T1 or T2 or…or