首頁  >  文章  >  後端開發  >  C#高階程式設計(一)-.NET體系結構

C#高階程式設計(一)-.NET體系結構

黄舟
黄舟原創
2017-03-20 11:15:261314瀏覽

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 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與COMCOM+Windows執行函式庫。

1.3 中間語言

  中間語言的主要特性:

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

  物件導向

和使用介面

  •   值類型和引用類型之間的顯著差異。


    ############          語言互操作性中強資料類型化的重要性###### ###                 其他類別的實例,它需要知道其他類別所使用的所有資料類型,這就是語言互通性非常重要的原因。 ############          .NET中的解決方案############################################################################################

    • 通用類型系統(CTS)



                                      C類型,所有面向.NET Framework的語言都可以產生最終基於這些類型的編譯程式碼。

                CTS也允許定義碼本身的型別。

                CTS的層次結構反映了中間語言的單一性#的物件導向的方法。


    • #公共語言規範(CLS)


#                 寫非LS會用程式碼是用程式碼就是可以接受的,但是我們不能保證這樣做IL程式碼完全支援語言的互通性。

    • 垃圾收集

    • #應用程式域

    • #垃圾回收器(garbage collector)用來在.NET中進行記憶體管理,特別是它可以恢復正在運行的應用程式所需要得記憶體。

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

    • 使用異常來處理錯誤

    • #使用特性(attribute)

以上是C#高階程式設計(一)-.NET體系結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn