程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 初探C#,

初探C#,

編輯:C#入門知識

初探C#,


                                                                  初探.NET底層原理

      學習C#離不開.net平台,因為微軟的開發平台真的是太強大了,它為每一個開發者都做了太多太多,但是我們不僅要知道怎麼用,而且也應該知道其中的內部到底包含了什麼。本篇文章不僅講一些C#語言的知識,也包括.net平台中的一些運行的機理。

      相比Java由於微軟對C#語言的封裝,讓許多人在其學習的較長時間內不能深刻理解。舉個簡單的例子:我們知道C#語言關於字段的封裝:在C#語言的實現中是get和set屬性,而在Java中確是get和set方法讓人一目了然,其實C#也是利用get,set方法實現的,只不過封裝起來,大家看不到而已。

      下面我們將從頭講起C#語言中的底層原理:

      首先我們要知道任何語言的運行,歸根到底是機器語言的運行,也就是大量的01數字。而C#語言也正是依靠.net平台,將這種高級語言編譯成01代碼。那麼C#語言在.net平台中的編譯過程到底是怎樣的呢?

 


其實.NET平台相當於Java中的虛擬機,通過C#編譯器得到中間語言(一種特殊的字節碼),運行時再經由CLR中的JIT(just in Time)編輯器編譯為機器代碼,便於OS執行。

那麼下面我們來看一下.NET中包含哪些內容?

 

該圖為.NET平台機構圖,可以發現VS.NET框架的核心技術為公共語言運行時(CLR)而且還包含BCL(基礎類庫)以及.NET中的各種語言,為何會有這麼多種語言可以在.net平台中運行呢?其實,以上的各種語言都可以編寫面向CLR的程序代碼,這種代碼在.net中被稱為托管代碼,所有的托管代碼都可以在CLR上運行,具有平台無關性。為何.net不能實現跨平台呢?例如在Linux中為何不可以實現asp.net或者winform呢,其實就是因為沒有面向Linux開發的CLR(不過mono貌似已經實現了,由於本人並未使用過,所以就不予置講了),就是這樣的原因,.net未能實現跨平台。

      下面我們來看CLR中的包含哪些內容?  

 Base Class LIbrary Support:基礎類庫支持

 Thread Support:CLR支持多線程(任何語言都可以利用此提供的服務來進行編寫多線程應用程序)。

COM Marshaler:向下兼容

Type Cheker:類型安全執行(任何不符合類型安全的強制轉換後,都會進行檢查,除此之外還自動檢查未初始化的變量與超過索引的數組)

Exception Manager:異常處理機制

 

後續內容將逐步完善,請持續關注!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved