Time of Update: 2017-02-27
第五講 構造器與析構器構造器構造器負責類中成員變數(域)的初始化。C#的類有兩種構造器:執行個體構造器和靜態構造器。執行個體構造器負責初始化類中的執行個體變數,它只有在使用者用new關鍵字為對象分配記憶體時才被調用。而且作為參考型別的類,其執行個體化後的對象必然是分配在託管堆(Managed
Time of Update: 2017-02-27
18.1.1 註冊表概述Windows作業系統的註冊表中包含了有關電腦運行方式的配置資訊,其中包括Windows作業系統配置資訊、應用程式配置資訊、專用使用者佈建配置資訊、環境配置資訊等。另外,在WindowsNT和Windows2000作業系統中,註冊表中還包含了安全性、網路管理等配置資訊。詳細內容請參閱本站文章:註冊表學習教程18.1.2 C#對註冊表編程的支援18.1.3
Time of Update: 2017-02-27
對於字串類型的屬性,其預設值就是“DBNull”。而對於其他的整數或者日 期類型的屬性,並沒有預設值,因此是無條件的插入到資料庫中。我們使用以下的代 碼來產生上述代碼文本myWriter.WriteLine("public override int FillInsertCommand( System.Data.IDbCommand cmd , object objRecord )");myWriter.BeginGroup("{"
Time of Update: 2017-02-27
在InnerReadValue函數中遍曆所有的屬性綁定資訊,調用IDataReader.GetValue函數從資料庫中獲得未經處理資料,然後調用FieldBindInfo.FromDataBase函數對這個未經處理資料進行一些處理,主要是進行格式化和資料類型轉換,然後調用PropertyInfo.SetValue函數根據讀取的資料設定對象執行個體的屬性值。這樣遍曆了所有的綁定資訊也就完整的填充了對象執行個體的屬性值。在ReadObjects函數中,遍曆所有查詢的資料,對每個記錄建立一個對象執行個
Time of Update: 2017-02-27
ORM背景在資料庫界,主流的資料庫都是關係型資料庫,其採用的關係型資料結構模型,無論從數學上還是實踐中都相當的成熟,得到非常廣泛的應用。在關係型資料結構理論中,所有的資料都組織成一個個相互獨立的二維表格,一個資料表有若干行若干列。因此關係型資料庫適合儲存大量的結構簡單的資料,不適合儲存複雜的資料結構。在編程界,物件導向的編程思想及其派生思想佔據主流。物件導向的編程思想具有封裝,繼承,重載等手段來方便的實現比較複雜的資料結構,這適應了現代資訊系統包含大量複雜資料結構的特點。因此物件導向的編程思想得
Time of Update: 2017-02-27
有沒有試過從一個集合裡面移除一個對象之後,這個集合仍然留有這個對象?世界之大,無奇不有。稍有疏忽,便會導致這種奇怪的現象。現在讓我們看看這個“不死”對象究竟是怎麼一回事。1、“不死”對象現身這個問題起初是我一個同事提出的,為了重現“不死”對象,現把代碼簡化如下:// Code #01IList products = new
Time of Update: 2017-02-27
在C++中,以類、虛函數等為代表的資料抽象功能一直是C++的核心和痛點。這裡我想結合自己的使用經驗,談談對C++中抽象的一點淺薄看法!我認為C++的抽象應該是指:從我們需要解決的問題出發,在與該問題相關的一組關聯對象中提取出主要的或共有的部分――說簡單一點,就是用相同的行為來操作不同的對象。從提出問題到找出與該問題相關的對象,這是一個互動的、反覆的過程。在對相關對象的抽象中,隨著認識的深入,我們可能會修改最初的目標,而最初目標的修改又可能使一組新的相關對象被加入進來。如:假設現在要設計一個基於廣
Time of Update: 2017-02-27
在Borland C++ Builder中,使用NMStrmServ和NMStrm組件可以很容易地在兩台電腦之間傳遞檔案。當然,你也可以使用基於FTPJ協議的檔案傳輸組件NMFTP,但使用NMStrmServ和NMStrm組件更加方便、快捷。首先,運行Borland C++
Time of Update: 2017-02-27
先是給大家一個類:class ScreenShot { public static void CaptureImage(Point SourcePoint, Point DestinationPoint, Rectangle SelectionRectangle, string FilePath) { using (Bitmap bitmap = new Bitmap(SelectionRectangle.Width, SelectionRectangle.Height)
Time of Update: 2017-02-27
有時程式需要儲存很大量的資料,或者在幾個進程間交換資料,這時您可能考慮到使用臨時檔案。使用臨時檔案要考慮幾個問題:1、保證臨時檔案間的檔案名稱不互助衝突。2、保證臨時檔案中內容不被其他使用者或者駭客偷看、刪除和修改。所以在linux下有專門處理臨時檔案的函數mkstemp函數mkstemp函數將在系統中以獨一無二的檔案名稱建立一個檔案並開啟,而且只有目前使用者才有訪問這個臨時檔案的許可權,目前使用者對這個臨時檔案可以開啟並進行讀、寫操作。mkstemp函數只有一個參數,這個參數是個以&ldquo
Time of Update: 2017-02-27
將圖片轉換為另一種格式的映像時,需要使用ImageFormat類,該類主要用來指定映像的格式。代碼如下:private void button2_Click(object sender, EventArgs e){ //轉換影像檔 if (MyBitmap == null) { MessageBox.Show("請首先選擇一幅映像!", "資訊提示"); return; }
Time of Update: 2017-02-27
指標參數是如何傳遞記憶體的?如果函數的參數是一個指標,不要指望用該指標去申請動態記憶體。樣本7-4-1中,Test函數的語句 GetMemory(str, 200)並沒有使str獲得期望的記憶體,str依舊是NULL,為什麼?void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num);}void Test(void){ char *str = NULL; GetMemory(str, 100); // str
Time of Update: 2017-02-27
如果你在網路上傳遞一份資料,但卻存在著種種不安全的因素,使你對資料能否原封不動地到達目的地而心存疑惑,這時,你就可以給資料加上數位簽章,從而使對方可以通過驗證簽名來檢查你所傳過去的資料是否已被他人修改。一、程式原理數位簽章的工作原理還是比較簡單的,它是根據你所提供的未經處理資料,經過複雜的演算法,產生特定的資料簽名,對方通過同樣的過程也產生簽名,如果資料已被修改,那麼就不可能得到兩份一模一樣的簽名,從而就可判斷資料已被他人修改。編程人員利用Windows的CAPI介面,就可以實現資料的加密、解密
Time of Update: 2017-02-27
*************************************************************************************** [翻文轉字]C++ Builder控制項版 ** V1.0 正式版 使用說明 ** 2000-04-30 ***************************************************************************************著作權說明:-------------作者:
Time of Update: 2017-02-27
以前也發過關於.net中操作XML的文章,但不是很詳細,現在我將詳細介紹一下c#如何操作xml檔案,正如學習操作資料庫要學習SQL語言一樣,在學習操作xml與語言之前,我們要先熟悉一下xml的“sql”語句xpath。由於本系列文章的目的不在於詳細介紹xpath文法所以,我借用了園子裡leves的文章來簡單介紹一下xpath文法:XPath 是XML的查詢語言,和SQL的角色很類似。以下面XML為例,介紹XPath 的文法。<?xml version="1
Time of Update: 2017-02-27
最近做的一個項目,我最開始選用的是 MySql 5.0 資料庫,項目提交之後,對方要求換成 MS SQLServer 2000,還好資料層操作基本採用的是標準的SQL語句,也未使用預存程序,於是將原有的資料接入層代碼改寫成泛型類,只改了不到一百行代碼,具體的SQL動作陳述式一句未動,便實現了資料庫之間的切換。下面簡述:資料庫不是很複雜,因此我採用了兩個類:(1) DataProvider 泛型類public class DataProvider<ConnType, CmdType>
Time of Update: 2017-02-27
C#中方法的參數有四種類型:-值參數:不含任何修飾符。方法中的形參是實參的一份拷貝,形參的改變不會影響到記憶體中實參的的值,實參是安全的。-引用參數:以ref修飾符聲明。傳遞的參數實際上是實參的指標,所以在方法中的操作都是直接對實參進行的,而不是複製一個值;可以利用這個方式在方法調用時雙向傳遞參數;為了以ref方式使用參數,必須在方法聲明和方法調用中都明確地指定ref關鍵字,並且實參變數在傳遞給方法前必須進行初始化。-輸出參數:以out修飾符聲明。和ref類似,它也是直接對實參進行操作。在方法聲
Time of Update: 2017-02-27
gamma值是用曲線表示的,這是一種人的眼睛對光的一種感應曲線,其中包括了物理量、身理感官及心理的感知度。1 /// <summary>2 /// Gamma校正3 /// </summary>4 /// <param name="bmp">輸入Bitmap</param>5 /// <param name="val">[0 <-明- 1 -暗-> 2]&
Time of Update: 2017-02-27
虛函數的類的物件版面配置(1)如果類中存在虛函數時,情況會怎樣呢?我們知道當一個類中有虛函數時,編譯器會為該類產生一個虛函數表,並在它的每一個對象中插入一個指向該虛函數表的指標,通常這個指標是插在對象的起始位置。所謂的虛函數表實際就是一個指標數組,其中的指標指向真正的函數起始地址。我們來驗證一下,定義一個無成員變數的類C040,內含一個虛函數。struct C040{ virtual void foo() {}};運行如下代碼列印它的大小及對象中的內容。PRINT_SIZE_DETAIL(C04
Time of Update: 2017-02-27
using system; using system.Collections.Generic; using system.ComponentModel; using system.Data; using system.Drawing; using system.Text; using system.windows.Forms; using system.IO; using