您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#中間語言和元數據是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C#中間語言和元數據是什么”這篇文章吧。
NGWS Runtime
NGWS和NGWS Runtime為你提供了一種運行時環境。該運行時管理執行代碼,并提供了使編程更容易的服務。只要你的編譯器支持這種運行時,你就會從這種受管理的執行環境中得益。
你猜測C#編譯器支持NGWS runtime很正確,但是不僅它支持NGWS runtime,VB和C++也支持。這些為支持運行時所創建的代碼稱作"受管代碼"(managed code)。以下是你的應用程序從NGWS runtime那里所得到的利益:
◆交叉語言集成(通過通用語言規范)
◆自動內存管理(垃圾收集)
◆交叉語言異常處理(統一展開)
◆增強安全(包括類型安全)
◆版本支持("DLL地獄"終結者)
◆組件交互簡化模式
因NGWS runtime 要提供了所有的這些好處,編譯器必須把元文件和受管代碼一起發出。元文件描述代碼中的類型,它和你的代碼存在一起(與PE類似——PE為可變位執行文件)
正如你從很多種交叉語言功能所看到的,NGWS runtime主要是關于高度集成交叉多異編程語言(tight integration across multiple different programming languages)。這種支持可達到允許你從一個VB對象派生出一個C#類的程度(我后面會給出要討論的文章)。
C#程序員將會喜歡的一個功能是,他們不必擔心內存管理-也就是說不必擔心臭名昭著的內存泄漏。NGWS runtime提供了內存管理,當對象和變量的生命期結束(不再被引用)時,垃圾收集器釋放它們。我真的喜歡這個功能,因為在COM中的內存管理一直是我的一塊心病。
應該鼓勵配置一個管理應用程序或者組件。因為管理應用程序含有元數據文件,NGWS runtime可以利用這些信息,以確保你的應用程序具有它所需的各種規定版本。所產生的明顯效果為,由于你的代碼沒有相互之間的依賴,很少可能出現中斷。
這章余下來討論NGWS runtime的C#中間語言和元數據,直到你的C#應用程序能執行為止。
C#中間語言和元數據
由C#編譯器生成的受管代碼并不是原始代碼,但它是中間語言代碼。這種中間語言代碼自身變成了NGWS runtime的受管執行進程的入口。中間語言代碼明顯的優勢在于它是CPU無關的,這也意味著,你要用目標機器上的一個編譯器才能把中間語言代碼轉換成原始代碼。
盡管中間語言代碼由編譯器產生,但它并不是編譯器提供給運行時僅有的東西。編譯器同樣產生有關你代碼的元數據,它告訴運行時有關你代碼的更多的東西,例如各種類型的定義、各種類型成員的簽名以及其它數據。基本上,元數據是類型庫、注冊表內容和其它用于COM的信息。盡管如此,元數據還是直接和執行代碼合并在一起,并不處在隔離的位置。
C#中間語言和元數據存放于擴展了PE格式的文件中(PE格式用于。exe和。dll文件)。當這樣的一個PE文件被裝載時,運行時從文件中定位和分離出中間語言和元數據.
在進一步說明之前,我想給你已有的中間語言指令的簡短目錄。盡管它不是一個完整的清單,也不需要你熟記和理解,但是它列出了你所必需的、C#程序所基于的知識基礎。
◆算術和邏輯操作符
◆控制流
◆直接內存訪問
◆堆棧操作
◆參數和局部變量
◆堆棧分配
◆對象模式
◆實例類型值
◆臨界區
◆數組
◆分型位置
◆即時編譯器(JITters)
以上是“C#中間語言和元數據是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。