《Inside C#》筆記(一) .NET平台

來源:互聯網
上載者:User

標籤:調用   font   net   執行   運行時   span   任務調度   即時   microsoft   

C# 基於.NET運行時,所以有必要首先對.NET以及C#與.NET平台的關係有一定的瞭解。

 一 .NET平台

.NET背後的基本思想是將原本獨立工作的裝置、網路服務整合在一個統一的平台上,從而可以為使用者提供豐富全面的解決方案。平時提到.Net一般預設指的是.Net Framework,但其實這隻是.NET平台的一部分另外還包括.NET Building Block Service、.NET Device Software等一系列看不懂的東西。.Net Framework包含通用語言執行平台Common Language Runtime(CLR)和.Net Framework類庫兩部分。可以把通用語言執行平台理解成.NET平台的虛擬機器,另外所有的.NET語言都包含了.Net Framework類庫。這個類庫涵蓋了從檔案讀寫到資料庫操作再到XML、SOAP等等非常廣泛的功能。

 

 

 

 

二 .NET Framework

a) CLR

CLR是.NET的核心,它是一個支援多種語言的程式同時運行、互相配合的即時環境。CLR支援多語言(C#, VB.NET,F#等)之間的互操作,那麼它是怎麼做到這一點的呢——因為這些語言都遵循了Common Language SpecificationCommon Language Specification(CLS)。一門語言只有遵守了CLS規範,才能建立運行在CLR上的應用程式。

關於CLR還有另一個重要的概念:Managed 程式碼。Managed 程式碼是在CLR的保護和管理下啟動並執行代碼,由CLR負責Managed 程式碼的記憶體配置、任務調度以及Managed 程式碼之間的通訊,這可以保證每個應用程式(即使是使用不同的語言編寫的)都能夠遵循統一的行為規範。

 

b) .Net Framework類庫

.Net Framework類庫對保證多語言間的互通性具有重要意義。因為通過.Net Framework類庫開發人員能使用由CLR提供的統一介面。雖然其它許多語言都有自己的類庫,比如C++,但.Net平台特殊的地方在於,程式設計語言之間的區別僅僅在於調用.Net Framework類庫時,在語義上的區別。下面來對比C++和C#對“Hello, World”程式的實現:

C++:

 

 

C#版:

 

 

C++可以使用cout函數直接輸出“Hello, World”,但C#要使用類庫提供的WriteLine方法。C++本身包含一個負責字元處理、檔案讀寫、螢幕顯示等的類庫,這可以認為是C++語言本身的功能,但C#等.NET平台下的語言卻不具備這些功能,這些功能屬於類庫,離開類庫,C#之類的語言基本上做不了任何事情。

 

c) IL碼和JITters

.NET平台的語言編譯器會將源碼編譯成IL碼Microsoft Intermediate Language(MSIL), IL碼本身也可以說是一種程式設計語言。在編譯好的應用程式第一次被執行時,IL碼才被編譯成真正的機器碼。大概過程如下

1. 用C#編寫源碼

2. 使用C#編譯器(csc.exe)編譯成IL碼

3. 在編譯好的應用程式被執行時,會使用Just-In-Time 編譯器Just-In-Time Compiler(JITter)將IL碼轉換為機器碼。

JITter只在某個方法被調用時才編譯該方法,而且編譯好的機器碼會被緩衝起來,只有C#源碼發生變化時才重新編譯機器碼。

 

 

 

 

三 .NET類庫的主要結構

 

 

學習資料:Inside C# by Tom Archer

 

《Inside C#》筆記(一) .NET平台

聯繫我們

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