# C#不能孤立地使用,必須與.NET Framework一起使用一起考慮。
(1)C#的體系結構和方法論反映了.NET基礎方法論。
(2)多數情況下,C#的特定語言功能取決於.NET的功能,或依賴.NET基底類別。
.NET支援的一些特性,C#並不支援。 C#語言支援的其他特性,.NET卻不支援。
# .NET Framework 的核心是其運行庫環境,稱為公共語言運行庫(CLR)或.NET運行庫。
通常將CLR控制下執行的程式碼稱為託管程式碼(managed code)。
.NET編譯程式碼的方式:
## 階段一:將原始程式碼編譯成Microsoft中間語言(IL)。
*IL與JAVA中字節碼類似。
階段二:CLR把IL編譯為平台專用的程式碼。
JIT(即時編譯)器在應用程式執行時才會經行編譯,所以JIL確切知道程式運作在什麼類型的處理器上,就可以針對該處理器經行最佳化,進而提高效能。
Visual Basic 2013,Visual C++ 2013,Visual F#,COM與COMCOM+Windows執行函式庫。
中間語言的主要特性:
# IL一般不允許對模糊資料型別執行任何操作,儘管強迫型別安全性似乎會降低效能,但多數情況下我們從.NET提供的、依賴型別安全的服務中獲得的好處更多,這些服務包括:
語言的互通性
值類型(vaule type),變數直接儲存其數據,中間語言儲存在堆疊中(如果在引用類型中聲明為字段,它們就內聯儲存在堆中)。
強制類型化
物件導向
和使用介面
C類型,所有面向.NET Framework的語言都可以產生最終基於這些類型的編譯程式碼。
CTS也允許定義碼本身的型別。
# 寫非LS會用程式碼是用程式碼就是可以接受的,但是我們不能保證這樣做IL程式碼完全支援語言的互通性。
垃圾收集
#應用程式域
#垃圾回收器(garbage collector)用來在.NET中進行記憶體管理,特別是它可以恢復正在運行的應用程式所需要得記憶體。
檢查託管堆中沒有引用的對象,並進行刪除。
使用異常來處理錯誤
#使用特性(attribute)
以上是C#高階程式設計(一)-.NET體系結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!