C#進階編程(一)-.NET體繫結構

來源:互聯網
上載者:User

1.1 C#與.NET的關係

  C#不能孤立地使用,必須與.NET Framework一起使用一起考慮。

    (1)C#的體繫結構和方法論反映了.NET基礎方法論。

    (2)多數情況下,C#的特定語言功能取決於.NET的功能,或依賴於.NET基類。

  .NET支援的一些特性,C#並不支援。C#語言支援的另一些特性,.NET卻不支援。

1.2 公用語言運行庫(CLR)

  1.2.1 平台無關性

    .NET Framework 的核心是其運行庫環境,稱為公用語言運行庫(CLR)或.NET運行庫。

    通常將CLR控制下啟動並執行代碼稱為Managed 程式碼(managed code)。

    .NET編譯代碼的方式:

      階段一:將原始碼編譯成Microsoft中繼語言(IL)。

        *IL與JAVA中位元組碼類似。

      階段二:CLR把IL編譯為平台專用的代碼。

  1.2.2 提高效能

    JIT(即時編譯)器在應用程式運行時才會經行編譯,所以JIL確切知道程式運行在什麼類型的處理器上,就可以針對該處理器經行最佳化,從而提高效能。

  1.2.3 語言互通性

    Visual Basic 2013,Visual C++ 2013,Visual F#,COM和COM+,Windows運行庫。

1.3 中繼語言

  中繼語言的主要特性:


    •   IL一般不允許對模糊資料類型執行任何操作,儘管強迫型別安全似乎會降低效能,但多數情況下我們從.NET提供的、依賴於型別安全的服務中擷取的好處更多,這些服務包括:

    • 語言的互通性

    •   實值型別(vaule type),變數直接儲存其資料,中繼語言儲存在堆棧中(如果在參考型別中聲明為欄位,它們就內聯儲存在堆中)。

    •   參考型別(reference type),變數僅儲存地址,參考型別的執行個體總是儲存在一個名為“託管堆”的記憶體地區中。

    •   強制類型化

    •   語言互通性的真正含義使用一種語言編寫的類應該能直接與用另一種語言編寫的類通訊。(由Visual Studio IDE)提供了這樣的工具(不是CLR)。

    •   物件導向和使用介面

    •   實值型別和參考型別之間的顯著差異。

          語言互通性中強資料類型化的重要性

          如果類派生或包含其他類的執行個體,它就需要知道其他類使用的所有資料類型,這就是語言互通性非常重要的原因。

          .NET中的解決方案



    • 一般型別系統(CTS)



                CTS定義了可以在中繼語言中使用的預定義資料類型,所有面向.NET Framework的語言都可以產生最終基於這些類型的編譯代碼。

                CTS還允許定義代碼自己的類型。

                CTS的階層反映了中繼語言的單一性繼承的物件導向的方法。


    • Common Language Specification(CLS)


                編寫非CLS將用代碼是可以接受的,但是這樣做之後我們就不能保證編譯好的IL代碼完全支援語言的互通性。

    • 垃圾收集

    • 安全性

    • 應用程式定義域

    • 記憶體回收行程(garbage collector)用來在.NET中進行記憶體管理,特別是它可以恢複正在啟動並執行應用程式所需要得記憶體。

    • 檢查託管堆中沒有引用的對象,並進行刪除。

    • 使用異常來處理錯誤

    • 使用特性(attribute)

相關文章

聯繫我們

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