Effective C# 摘錄(6) – 雜項討論

來源:互聯網
上載者:User

45.優先選擇強異常安全保證。
   Prefer the Strong Exception Guarantee.
   強異常保證狀態是指,如果一個操作因為某個異常中斷,程式維持原狀態不改變,不管操作是否完成,都不修改程式的狀態,這裡沒有折衷。強異常保證的好處是,你可以在捕獲異常後更簡單的繼續執行程式。終結器(Finalizers)、Dispose()以及委託目標是特殊的情況,它們中不應該出現因為異常而終止執行的情況。
  實現強異常安全的三個步驟:(1)對可能要修改的資料進行被動式的拷貝;(2)在拷貝的資料上完成修改操作,其中包括任何可能異常異常的操作;(3)把臨時的拷貝資料與來源資料進行交換(這個操作決不能發生任何異常!)。
  小心對參考型別進行交換操作,因為可能會引發大量潛在的BUG!

46.最小化互操作。
   Minimize Interop。
   互操作時有三個開銷:(1) 這在託管堆和非託管堆之間進行資料傳遞時的Marshal開銷;(2) 在Managed 程式碼和Unmanaged 程式碼進行之間互動的資料吞吐開銷;(3) 學習和使用這些技術的開銷。
   如果要使用現有的用其它語言寫的COM對象,使用COM互動;如果要使用已有的C++代碼,使用/CLR開關並託管C++來提供來訪問已有的本地代碼;最省時的策略就是“just thro it out”!

47.優先選擇安全的程式碼。
   Prefer Safe Code.
   無論何時,都不要指標來訪問其它非託管或者託管的堆記憶體,以建立的安全程式集;只要可能,都應該避免訪問非託管記憶體和受保護資源(例如註冊表、檔案系統等)。
   隔離儲存區 (Isolated Storage)(System.IO.IsolatedStorage)可以隔離基於程式集而獨立的虛擬目錄、應用程式定義域以及當前的使用者。受信任的程式集可以訪問他們自己的隔離儲存區 (Isolated Storage)區,但不能是檔案系統的其它地方。獨立的儲存區對其它程式集和其它使用者是隱藏的不可見的。

48.掌握相關工具與資源。
   Learn About Tools and Resources.
   單元測試工具:NUnit (http://www.nunit.org/);
   程式碼分析工具:FXCop (www.gotdotnet.com,Visual Studio 2005整合);
   IL反組譯碼器  :ILDasm(安裝.net framework時也安裝了該工具);
   C# FAQ      : http://blogs.msdn.com/csharpfaq
   Asp.net開發 :www.asp.net
   WinApp開發  :www.windowsforms.net
   模式和實踐  :www.microsoft.com/resources/practices/
   Sharee Source CLI:http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&displaylang=en
   .net領域還有很多優秀的工具:Reflector、Regulator、NAnt、Snippet Compiler、等更多工具可以參考這裡:http://sharptoolbox.com/

49.為C#2.0做準備。
   Prepare for C# 2.0.

50.瞭解ECMA標準。
   http://www.ecma-international.org/publications/standards/Standard.htm
   ECMA-334 C# Language Specification, 4th edition (June 2006) ISO/IEC 23270 
   ECMA-335 Common Language Infrastructure (CLI), 4th edition (June 2006)  ISO/IEC 23271 
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.