原文:《Effective C#》讀書筆記——條目15:使用using和try/finally清理資源<.NET資源管理>

在.NET環境中,非托管系統資源由開發人員來負責釋放,且非托管系統資源必須顯式的使用IDisposable接口的Dispose 來釋放 詳見:了解.NET內存管理機制 。所有封裝或使用了非托管資源的類型都實現了IDisposable接口。同時這些類也在終結器中調用Dispose ,保證了開發人員在忘記資源釋放的時候仍然能夠正常的釋放掉資源 對象資源會一直停留在內存中,直到終結器被調用 ,這會導致 ...

2012-11-26 08:52 7 2257 推薦指數:

查看詳情

Effective C#讀書筆記——條目17:實現標准的銷毀模式<.NET資源管理>

  如何為我們自己的包含非托管資源的類型編寫資源管理代碼呢?在 .NET 中為我們提供了一種標准的銷毀非托管資源的模式,這個標准的模式能夠使使用者通過調用IDisposable接口正常釋放掉非托管資源,也能夠保證使用者在忘記釋放資源使用終結器釋放。這個標准模式可以和GC配合,保證僅在最糟 ...

Fri Nov 30 17:33:00 CST 2012 7 1634
Effective C#讀書筆記——條目12:推薦使用成員初始化器而不是賦值語句<.NET資源管理>

  一般情況下,一個類都會有多個構造函數。隨着時間的推移,成員變量、構造函數不斷增加。為了處理這種情況最方便的辦法就是:在聲明變量的時候進行初始化,而不是在每個構造函數中進行。無論是類成員(靜態變量)合適實例變量,我們都應該充分利用初始化器的語法。   C#編程在,一般在聲明一個變量 ...

Wed Nov 07 05:59:00 CST 2012 3 2640
Effective C#讀書筆記——了解.NET內存管理機制<.NET資源管理>

  我們知道C#是一門虛擬機語言,在C#編譯器首先將C#代碼編譯成IL代碼,運行程序時CLR(Common Language Runtime,公共語言運行時)通過調用JIT(just-in-time Compiler,即時編譯器)來將IL代動態即時編譯成可執行的機器碼。在CLR中有一個非常重要 ...

Mon Oct 22 19:09:00 CST 2012 20 3582
Effective C#讀書筆記——條目13:正確地初始化靜態成員變量<.NET資源管理>

  我們知道在C#語言中創建一個類型的實例前,就應該初始化該類型的所有靜態成員變量。C#語言為我們提供了靜態初始化器和靜態構造函數。其中,靜態構造函數是一個特殊的構造函數,將在其他所有方法執行前以及變量或屬性被第一次訪問之前將自動調用靜態構造函數,且僅執行一次。我們可以通過使用靜態構造函數來初始化 ...

Fri Nov 16 01:17:00 CST 2012 7 3729
Effective C#讀書筆記——條目8:推薦使用查詢語法而不是循環<C#語言習慣>

  查詢語法(query syntax)可以讓程序邏輯的表達由“命令式”轉換為“聲明式”。查詢語法定義了想要的結果,而把具體實現交給其他的專門實現。使用查詢語法(實現了查詢表達式模式的方法語法也可以)要比傳統的命令式循環結果更加清晰的表達你的意圖。   下面我們觀察一個使用命令式方法填充一個 ...

Sun Sep 02 05:19:00 CST 2012 10 2344
Effective C#讀書筆記——條目10:使用可選參數減少方法重載的數量<C#語言習慣>

  C#4.0 引入了具名參數(MSDN翻譯為“命名實參”,個人認為具名參數更形象,可選參數亦是)和可選參數(可選實參)。客戶端代碼使用具名參數意味着:方法中的參數名稱也成為了公有接口的一部分。假如修改公有參數的名稱將有可能破壞調用者的代碼。這意味着:調用者應該盡可能的避免使用具名參數 ...

Mon Oct 08 05:54:00 CST 2012 2 2628
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM