日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 基础知识 (四).C#简介及托管代码

發(fā)布時間:2024/5/28 C# 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 基础知识 (四).C#简介及托管代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??????? 暑假轉(zhuǎn)瞬即逝,從10天的支教生活到1周的江浙滬旅游,在這個漫長的暑假中我經(jīng)歷了很多東西,也學(xué)到了很多東西,也認(rèn)識到了很多不足之處!閑暇之余我準(zhǔn)備重新進(jìn)一步鞏固C#相關(guān)知識,包括C#入門知識、C#并行開發(fā)、ASP網(wǎng)站等.這篇文章我介紹的是書籍——C#入門經(jīng)典(Beginning C#) 作者Karli Watson.主要包括的是我自己缺乏的一些C#簡介知識和托管代碼的內(nèi)容.內(nèi)容比較簡單,參照該書籍較多,相當(dāng)于自己的在線筆記!

???????????????????????????????????????????? 《C#入門經(jīng)典》書籍章節(jié)簡介:
??????????????????????????????????????第01-14章 C#語言:C#簡介及與.NET關(guān)系,語法和OOP
??????????????????????????????????????第15-17章 Windows編程:使用.NET Framework各種控件
??????????????????????????????????????第18-20章 Web編程:使用ASP.NET執(zhí)行任務(wù)、ajax
??????????????????????????????????????第21-24章 數(shù)據(jù)訪問:數(shù)據(jù)保存磁盤、XML、LINQ
??????????????????????????????????????第25-27章 其他技術(shù):WPF、WCF、WF

一. 創(chuàng)建.NET應(yīng)用程序步驟

創(chuàng)建.NET應(yīng)用程序經(jīng)歷四個步驟如下:
1.使用某種.NET兼容語言(如C#)編寫應(yīng)用程序代碼


2.把代碼編譯為CIL,存儲在程序集中


3.在執(zhí)行代碼時(可執(zhí)行文件自動運(yùn)行或其他代碼使用它時運(yùn)行),首先必須使用JIT編譯器將代碼編譯為本機(jī)代碼


4.在托管的CLR環(huán)境下運(yùn)行本機(jī)代碼以及其他應(yīng)用程序或進(jìn)程

二. 托管代碼

??????? 首先對上面的術(shù)語進(jìn)行簡單的解釋.
??????? CIL 在編譯使用.NET Framework庫的代碼時,不是立即創(chuàng)建專用于操作系統(tǒng)的本機(jī)代碼,而是把代碼編譯為通用中間語言(Common Intermediate Language,CIL)代碼.
??????? JIT Just-In-Time編譯器的任務(wù)是把CIL編譯為專用于OS和目標(biāo)機(jī)器結(jié)構(gòu)的本機(jī)代碼,OS才能執(zhí)行應(yīng)用程序.
??????? CLR
Common Language Runtime,公共語言運(yùn)行庫:負(fù)責(zé)管理用.NET庫開發(fā)的所有應(yīng)用程序的執(zhí)行.
??????? 程序集 編譯應(yīng)用程序時,所創(chuàng)建的CIL代碼存儲在一個程序集中.程序集包括可執(zhí)行的應(yīng)用程序文件(.exe)和其他應(yīng)用程序使用的庫(.dll).

??????? 過去常常需要把代碼編譯為幾個應(yīng)用程序,每個應(yīng)用程序都用于特定的OS和CPU結(jié)構(gòu),現(xiàn)在JIT編譯器使用CIL代碼(CIL代碼獨(dú)立于計算機(jī)、OS和CPU)編譯為本機(jī)代碼.
??????? 托管代碼 將代碼編譯為CIL,再用JIT編譯器將它編譯為本機(jī)代碼后,CLR(公共語言運(yùn)行庫)的任務(wù)沒有全部完成,還要管理正在執(zhí)行的用.NET Framework編寫的代碼(執(zhí)行代碼的階段叫運(yùn)行時runtime).即CLR管理著應(yīng)用程序,其方式是管理內(nèi)存、處理安全性及允許進(jìn)行垮語言調(diào)試.相反,不受CLR控制運(yùn)行的應(yīng)用程序?qū)儆诜峭泄茴愋?
????????換句話說:
??????? 托管代碼 (managed code)是由公共語言運(yùn)行庫CLR環(huán)境(而不是直接由操作系統(tǒng))執(zhí)行的代碼.
??????? 非托管代碼(Unmanaged Code)在公共語言運(yùn)行庫環(huán)境的外部,由操作系統(tǒng)直接執(zhí)行的代碼.
??????? 非托管代碼必須提供自己的垃圾回收、類型檢查、安全支持等服務(wù),而托管代碼從CLR環(huán)境中獲得這些服務(wù).

??????? 舉例:非托管類型如C++內(nèi)存管理和分配,調(diào)用構(gòu)造函數(shù),使用完后釋放內(nèi)存.但是在C#中,只能編寫在托管環(huán)境下運(yùn)行的代碼,使用CLR的托管功能讓.NET自己與OS進(jìn)行交互.
??????? 兩者區(qū)別可參照 http://bbs.csdn.net/topics/330164764
??????? 垃圾回收 托管代碼最重要的一個功能就是垃圾回收(garbage collection),這種.NET方法可確保應(yīng)用程序不再使用某些內(nèi)存時,完全釋放這些內(nèi)存.會定期檢查計算機(jī)內(nèi)存,從中刪除不再需要的內(nèi)容.

三. C#編寫應(yīng)用程序

??????? C#使用的是.NET Framework沒有限制應(yīng)用程序的類型,常見的應(yīng)用程序類型如下:
??????? 1.Windows應(yīng)用程序
??????? 這些應(yīng)用程序(如微軟office)具有熟悉的Windows外觀和操作方式,使用.NET Framework的Windows Forms模塊(一個控件庫,其中控件如按鈕,可用于創(chuàng)建Windows用戶界面UI)可以生成這種應(yīng)用程序.還可以使用WPF(Windows Presentation Foundation)建立更靈活卓越的Windows應(yīng)用程序.
??????? 2.Web應(yīng)用程序
??????? 是一些Web頁面,可通過任何Web瀏覽器查看.其.NET Framework包括一個動態(tài)生成Web內(nèi)容的強(qiáng)大系統(tǒng),允許進(jìn)行個性化和安全性等.這個系統(tǒng)叫Active Server Pages.NET(ASP.NET),使用C#通過Web Forms創(chuàng)建ASP.NET應(yīng)用程序.還可以使用Silverlight編寫在瀏覽器內(nèi)部運(yùn)行的應(yīng)用程序.(接下來wo需要學(xué)習(xí)研究的東西)
????????3.Web服務(wù)
??????? 這是創(chuàng)建各種分布式應(yīng)用程序的新方式,使用Web服務(wù)可以通過Internet虛擬交換數(shù)據(jù).高級功能還可以創(chuàng)建WCF(Windows Communication Foundation)服務(wù).
??????? 補(bǔ)充一些概念知識如下圖:

???????總結(jié):該文章主要是關(guān)于C#知識的基礎(chǔ)簡介知識和托管代碼講解,其中主要參照書籍《C#入門經(jīng)典》,推薦大家學(xué)習(xí)C#的入門書籍.同時后面將講述一些自己薄弱方面的基礎(chǔ)知識,同時想結(jié)合自己想做的東西講解些知識.如果有錯誤或不足之處還請海涵!高手飛過~
?(By:Eastmount 2014-8-17 夜12點(diǎn) 原創(chuàng)CSDN?http://blog.csdn.net/eastmount/)

總結(jié)

以上是生活随笔為你收集整理的C# 基础知识 (四).C#简介及托管代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。