原创 淺談C#託管程序中的資源釋放問題

終於開始動手寫這篇文章了,有個網友催了我好幾次,今天終於可以靜下心來完成它。   便於對文章的開展,需要先明確兩個概念。 第一個就是很多人用.Net寫程序,會談到託管這個概念。那麼.Net所指的資源託管到底是什麼意思,是相對於所有資源,還

原创 《Effective C#》Item 5:提供一個有意義的ToString函數

在編寫自定義類型的時候,即使我們不寫ToString函數,系統也會自動提供ToString函數,例如:     public class clsUserInfo     {         private string strUserNa

原创 《Effective C#》Item 1:用屬性來訪問類的私有成員

在程序中,難免要訪問某個對象的私有成員。那麼以前實現這類功能的方法有兩種,第一種方法最簡單,就是把成員訪問符從“private”改爲“public”即可;而另一個就是提供公有的成員訪問函數來進行訪問。那麼現在用C#編寫程序,就不再需要採用

原创 如何分解和合成Gif圖像

一個Gif圖像文件,是有幾個文件進行合成的,因此處理此類文件的時候,不能像Jpeg或者Bmp文件那樣處理。需要把Gif文件拆分幀的形式,然後對每一幀進行處理,處理完後再合成Gif。   其實網上有個例子對於Gif處理非常詳細,地址如下。

原创 多線程斷點續傳研究之二

上篇文章寫完,由於整體思路是正確的,但是沒有真正形成多線程下載,所以對本身的代碼進行關鍵點的檢查,尤其在一些操作web請求的地方,看看是否有什麼問題,最後發現顯示的關閉HttpWebResponse對象,能稍微有所改進。 原文參看: ht

原创 如何使用Base64進行加密和解密(續)

由於以前文章在介紹Base64方法的時候,所提供的調用方法過於麻煩,而且接口不太直觀,因此我最近在原有的基礎上進行了修改。   具體代碼如下: //----------------------------- Base64 class --

原创 如何去寫一個.Net程序

很多人看到我這個標題一定很詫異,肯定會說,只要用.Net工具來進行開發,那麼所編寫的程序不就是.Net程序嗎?其實在這裏,我所說的意思是,大多數人能用.Net進行開發程序,但編寫出來的代碼要麼沒有體現出.Net語言特性,要麼沒有用.Net

原创 多線程斷點續傳研究之一

本人最近應網友之邀,在一篇文章的基礎上去實現一個多線程斷點續傳下載文件的程序。但是在編寫的過程中,發現問題多多。   原文地址爲: http://dev.csdn.net/develop/article/64/64877.shtm   知

原创 《Effective C#》Item 2:定義常量的兩種方法

在C#中定義常量的方式有兩種,一種叫做靜態常量(Compile-time constant),另一種叫做動態常量(Runtime constant)。前者用“const”來定義,後者用“readonly”來定義。   對於靜態常量(Com

原创 《Effective C#》Item 7:推薦使用不可改變的原子值類型

首先來解釋一下標題,原標題爲《Prefer Immutable Atomic Value Type》,因此對於標題的理解要分成三部分,第一部分爲不可改變,第二部分爲原子,最後一個部分爲值類型。最後一部分,我不多說了,限制此章適用的範圍。對

原创 《Effective C#》Item 11:提倡使用foreach語句來進行循環操作

循環語句是編程的基本語句,在C#中除了沿用C語言的循環語句外,還提供了foreach語句來實現循環。那麼我要說的就是,在循環操作中儘量使用foreach語句來實現。   爲了來更好地說明爲什麼要提倡使用foreach,用如下三種不同方式來

原创 使用Double-Buffer來實現無閃爍動態折線圖

由於這片例子是借鑑於別人的基礎上寫的,我只是在上面加上了動態畫折線圖這部分,因爲原理很簡單,當時也只是爲了給網友一個例子。沒想到,還有很多人做這個,那麼我就把這部分的代碼貼出來,分享給大家。   大致代碼如下: //-----------

原创 《Effective C#》Item 9:區別和認識四個判等函數

.Net有四個判等函數?不少人看到這個標題,會對此感到懷疑。事實上確是如此,.Net提供了ReferenceEquals、靜態Equals,具體類型的Equals以及==操作符這四個判等函數。但是這四個函數之間有細微的關係,改變其中一個函

原创 如何使用RC4進行數據加減密

最近幫一個網友解決RC4加減密的問題,雖說在網上有類似的問題,但是對於中文解決不是很理想,因此我在別人的基礎上進行修改,並且爲了方便顯示,把加密後的字符串用16進制來顯示。   大致的代碼如下: //-------------------

原创 《Effective C#》Item 8:確保“0”在值類型中是有效的

大家在看了這標題後,肯定會覺的,爲什麼要確保“0”是有效的,這一點主要是跟值類型的內存分配有關,值類型有默認的構造函數,這是沒法避免的,因此值類型變量中的成員在初始化的時候所出現的細微問題(對於值類型這方面的知識可以參看我前面一篇文章)。