[.NET] 《Effective C#》快速筆記 - C# 中的動態編程(初稿)

來源:互聯網
上載者:User

標籤:部分   理解   動態語言   系統   編譯   post   pos   dynamic   view   

《Effective C#》快速筆記 - C# 中的動態編程

  靜態類型和動態類型各有所長,靜態類型能夠讓編譯器幫你找出更多的錯誤,因為編譯器能夠在編譯時間進行大部分的檢查工作。C# 是一種靜態類型的語言,不過它加入了動態類型的語言特性,可以更高效地解決問題。  

 

本系列

  《Effective C#》快速筆記(一)- C# 語言習慣

  《Effective C#》快速筆記(二)- .NET 資源託管

  《Effective C#》快速筆記(三)- 使用 C# 表達設計

  《Effective C#》快速筆記(四) - 使用架構

  《Effective C#》快速筆記(五) - C# 中的動態編程

 

一、目錄
  • 三十八、理解動態類型的優劣
  • 三十九、使用動態類型表達泛型型別參數的運行時類型
  • 四十、將接受匿名型別的參數聲明為 dynamic
  • 四十一、用 DynamicObject 或 IDynamicMetaObjectProvider 實現資料驅動的動態類型
  • 四十二、如何使用運算式 API
  • 四十三、使用運算式將延遲綁定轉換為預先綁定
  • 四十四、盡量減少在公有 API 中使用動態類型

 

三十八、理解動態類型的優劣

  1.當你需要要不知道具體類型的運行時解析方法的時候,動態類型是最佳的工具。

  2.優先使用靜態類型,靜態類型比動態類型更高效。

  3.若你能控製程序中所有涉及的類型時,可以引入一個介面,而不是動態類型,即基於介面編程,並讓所有需要支援該介面行為的類型都實現該介面。通過 C# 類型系統可以減少代碼在運行時所產生的錯誤,編譯器也能夠產生更加高效的代碼。

 

三十九、使用動態類型表達泛型型別參數的運行時類型

  1.Convert<T> 要比 Cast<T> 適用性更廣。

 

四十、將接受匿名型別的參數聲明為 dynamic

  1.不要過度使用動態類型,因為動態調用會增加系統的額外開銷,即便不大。

  2.擴充方法不能基於動態對象定義。

 

四十一、用 DynamicObject 或 IDynamicMetaObjectProvider 實現資料驅動的動態類型

  1.建立帶有動態功能的類型的最簡單的方法就是繼承 System.Dynamic.DynamicObject。若能直接繼承 DynamicObject,那麼建立動態類就會比較簡單。

 

四十二、如何使用運算式 API

 

四十三、使用運算式將延遲綁定轉換為預先綁定

 

四十四、盡量減少在公有 API 中使用動態類型

  1.優先使用 C# 的靜態類型,並儘可能地降低動態類型的作用範圍。若是想一直使用動態特性,你應該直接選用一種動態語言,而非 C#。

  2.若要在程式中使用動態特性,請盡量不要在公有介面中使用,這樣會將動態類型限制在一個單獨的對象(或類型)中。

 

 

 

【博主】反骨仔

【原文】http://www.cnblogs.com/liqingwen/p/6816100.html

【GitHub】https://github.com/liqingwen2015/XMind 可以下載 XMind

【參考】《Effective C#》

 

[.NET] 《Effective C#》快速筆記 - C# 中的動態編程(初稿)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.