




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Beginning Microsoft Visual C# 2021C#入門經(jīng)典(第四版)教師:張祖法教師:張祖法2021-12-29C# 程序設計 By 張祖法第1頁第第1章章 C#簡介簡介 本書的第l局部將介紹使用C拌語言所需的根底知識。第l章將概述C#和.NET Framework、對這些技術的理解、使用它們的原因,以及它們之間的相互關系。 本章的主要內(nèi)容: C#和NET Framework的含義 NET Framework的工作原理和特別之處 C#的功能 Visual Studi0 2021(VS)和Visual c# 2021 Express Edition(VCE)2021-12-
2、29C# 程序設計 By 張祖法第2頁1.1 什么是.NET Framework NET Framework是Microsoft為開發(fā)應用程序而創(chuàng)立的一個富有革命性的新平臺。 支持在多種操作系統(tǒng)上運行開發(fā)程序 .NET Framework可以創(chuàng)立Windows應用程序、Web應用程序、Web效勞和其他各種類型的應用程序。 .NET Framework的設計方式保證它可以用于各種語言,包括本書耍介紹的C#語言,以及C+、Visual Basic、JScript,甚至一些舊的語言,如COBOL。為此,還推出了這些語言的.NET版本2021-12-29C# 程序設計 By 張祖法第3頁1.1.1 .
3、NET Framework的內(nèi)容的內(nèi)容 NET Framework主要包含一個非常大的代碼庫,可以在客戶語言(如C#)中通過面向對象編程技術(OOP)來使用這些代碼。這個庫分為不同的模塊這樣就可以根據(jù)希望得到的結果來選擇使用其中的各個局部。 局部NET Framework庫定義了一些根本類型。類型是數(shù)據(jù)的一種表達方式,指定其中最根底的局部(例如32位帶符號的整數(shù)),。以便使用NET Framework在各種語言之間進行交互操作。這稱為通用類型系統(tǒng)(Common Type System,CTS)。 除了支持這個庫以外,.NET Framework還包含NET公共語言運行庫(Common Lang
4、uage Runtime,CLR),它負責管理用NET庫開發(fā)的所有應用程序的執(zhí)行。2021-12-29C# 程序設計 By 張祖法第4頁1.1.2 如何用.NET Framework編寫應用程序 使用NET Framework編寫應用程序,就是使用NET代碼庫編寫代碼(使用支持Framework的任何一種語言)。本書中所有的例如都使用VS進行開發(fā),VS是一種強大的集成開發(fā)環(huán)境。支持c#(以及托管和非托管c+、Visual Basic和其他一些語言)。這個環(huán)境的優(yōu)點是便于把NET功能集成到代碼中。我們創(chuàng)立的代碼完全是C#代碼。但使用.NET Fremework,并在需要時利用VS中的其他工具。
5、為了執(zhí)行C#代碼,必須把它們轉換為目標操作系統(tǒng)能夠理解的語言,即本機代碼,這種轉換稱為編譯代碼,由編譯器執(zhí)行。但在NET Framework下,這個過程分為兩個階段。2021-12-29C# 程序設計 By 張祖法第5頁 1MSIL和JIT在編譯使用.NET Framework庫的代碼時不是立即創(chuàng)立操作系統(tǒng)特定的本機代碼,而是把代碼編譯為Microsoft中間語言(Microsoft Intermediate Language,MSIL)代碼,這些代碼不專用于任何一種操作系統(tǒng)。顯然,要執(zhí)行應用程序,必須完成更多的工作,這是Just-In-Time(JIT)編譯器的任務,它把MSIL編譯為專用于
6、0S和目標機器結構的本機代碼。這樣OS才能執(zhí)行應用程序。這里編譯器的名稱Just-In-Time反映了MSIL僅在需要時才編譯的事實。 JIT編譯器使用MSIL代碼,而MSIL代碼是獨立于機器、操作系統(tǒng)和CPU的。因此,不需要編譯成為在各種操作系統(tǒng)上運行的應用程序。2021-12-29C# 程序設計 By 張祖法第6頁 2. 程序集在編譯應用程序時,所創(chuàng)立的MSIL代碼存儲在一個程序集中,程序集包括可執(zhí)行的應用程序文件(這些文件可以直接在Windows上運行。不需要其他程序,其擴展名是exe)和其他應用程序使用的庫(其擴展名是dll)。 除了包含MSIL外,程序集還包含元信息(即程序集中包含的
7、數(shù)據(jù)的信息,也稱為元數(shù)據(jù))和可選的資源(MSlL使用的其他數(shù)據(jù),例如聲音文件和圖片)。因此,部署應用程序就非常簡單了,只需把文件復制到遠程計算機上的目錄下即可。因為不需要目標系統(tǒng)上的其他信息,所以只需從該目錄中運行可執(zhí)行文件即可(假定安裝了.NET CLR)。2021-12-29C# 程序設計 By 張祖法第7頁 3托管代碼 在把代碼編譯為MSIL,再用JIT編譯器把它編譯為本機代碼后,CLR的任務還沒有全部完成。用NET Framework編寫的代碼在執(zhí)行(這個階段通常稱為運行時(runfime)時是托管的。即CLR管理著應用程序,其方式是管理內(nèi)存、處理平安性,以及允許進行跨語言調(diào)試等。相反
8、,不在CLR控制之下運行的應用程序是非托管的,某些語言如C+可以用于編寫這類應用程序,例如訪問操作系統(tǒng)的低級功能。但是,在C#中,只能編寫在托管環(huán)境下運行的代碼。我們將使用CLR的托管功能。讓.NET自己與操作系統(tǒng)進行交互。2021-12-29C# 程序設計 By 張祖法第8頁 4垃圾回收 托管代碼最重要的一個功能是垃圾回收垃圾回收(garbage collection)。這種.NET方法可確保應用程序不再使用某些內(nèi)存時,這些內(nèi)存就會被完全釋放。在.NET推出以前,這項工作主要由程序員負責,代碼中的幾個簡單錯誤會把大塊內(nèi)存分配到錯誤的地方,使這些內(nèi)存神秘失蹤。這通常意味著計算機的速度逐漸減慢,
9、最終導致系統(tǒng)崩潰。 .NET垃圾回收會頻繁檢查計算機內(nèi)存,從中刪除不再需要的內(nèi)容。它沒有設置時間幀,可能一秒鐘內(nèi)會進行上千次的檢查,也可能幾秒鐘檢查一次,或者隨時進行檢查,但可以肯定進行了檢查。這里要給程序員一些提示。因為這項工作在不可預知的時間進行,所以在設計應用程序時,必須記得要進行這樣的檢查。需要許多內(nèi)存才能運行的代碼應自己執(zhí)行這樣的檢查,而不是坐等垃圾回收,但這不像聽起來那樣難。2021-12-29C# 程序設計 By 張祖法第9頁 5把它們組合在一起 在繼續(xù)學習之前先總結一下上述創(chuàng)立NET應用程序所需要的步驟: (1)使用某種.NET兼容語言(如C#)編寫應用程序代碼,如圖1-1所示
10、。 (2)把代碼編譯為MSIL,存儲在程序集中,如圖1-2所示。 (3)在執(zhí)行代碼時(如果這是一個可執(zhí)行文件,就自動運行,或者在其他代碼使用它時運行),首先必須使用JIT編譯器將代碼編譯為本機代碼,如圖1-3所示。2021-12-29C# 程序設計 By 張祖法第10頁(4)在托管的CLR環(huán)境下運行本機代碼,以及其他應用程序或過程如圖l-4所示。2021-12-29C# 程序設計 By 張祖法第11頁 6鏈接 在上述過程中還有一點要注意。在第(2)步中編譯為MSIL的C#代碼不一定包含在單獨的文件中,可以把應用程序代碼放在多個源代碼文件中,再把它們編譯到一個程序集中。這個過程稱為鏈接,是非常有
11、用的。原因是處理幾個較小的文件比處理一個大文件要簡單得多??梢园堰壿嬌舷嚓P的代碼分解到一個文件中。以便單獨處理它,這也更易于在需要代碼時找到它們,讓開發(fā)小組把編程工作分解為可管理的塊讓每個人編寫一小塊代碼,而不會破壞已編寫好的代碼局部或其他人正在處理的局部。2021-12-29C# 程序設計 By 張祖法第12頁1.2 什么是C# 如上所述c#是可用于創(chuàng)立要運行在NET CLR上的應用程序的語言之一它從C和C+語言演化而來,是Microsoft專門為使用NET平臺而創(chuàng)立的。因為C#是近期開展起來的,所以吸取了以前的教訓,考慮了其他語言的許多優(yōu)點,并解決了它們的問題。 使用C#開發(fā)應用程序比使用
12、C+簡單,因為其語法比較簡單。但是,C#是一種強大的語言,在C+中能完成的任務利用C#也能完成。 C#代碼常常比C+略長一些。這是因為C#是一種類型平安的語言(與C+不同)。2021-12-29C# 程序設計 By 張祖法第13頁1.2.1 用用C#編寫什么樣的應用程序編寫什么樣的應用程序如前所述,.NET Framework沒有限制應用程序的類型。C#使用NET Framework沒有限制應用程序的類型。這里僅討論幾種常見的應用程序類型。 Windows應用程序 這些應用程序如Microsoft Office,有我們很熟悉的Windows外觀和操作方式,使用.NET Framework的Wi
13、ndows Forms模塊就可以生成這種應用程序。Windows Form模塊是一個控件庫,其中的控件(例如按鈕、工具欄、菜單等)可以用于建立Windows用戶界面UI。2021-12-29C# 程序設計 By 張祖法第14頁 Web應用程序應用程序 這些是這些是Web頁,可以通過任何頁,可以通過任何Web瀏覽器瀏覽器查看。查看。NET Framework包括一個動態(tài)生成包括一個動態(tài)生成Web內(nèi)容的強內(nèi)容的強大系統(tǒng),允許個性化、實現(xiàn)平安性等。這個系統(tǒng)叫作大系統(tǒng),允許個性化、實現(xiàn)平安性等。這個系統(tǒng)叫作Active Server Pages .NET(ASPNET),我們可以使用,我們可以使用C#
14、通過通過Web Forms創(chuàng)立創(chuàng)立ASPNET應用程序。應用程序。 Web效勞效勞 這是創(chuàng)立各種分布式應用程序的新方式,使用這是創(chuàng)立各種分布式應用程序的新方式,使用Web效勞可以通過效勞可以通過Internet虛擬交換數(shù)據(jù)。無論使用什么虛擬交換數(shù)據(jù)。無論使用什么語言創(chuàng)立語言創(chuàng)立web效勞,也無論效勞,也無論Web效勞駐留在什么系統(tǒng)上,效勞駐留在什么系統(tǒng)上,都使用一樣簡單的語法。都使用一樣簡單的語法。這些類型也需要某種形式的數(shù)據(jù)庫訪問,這可這些類型也需要某種形式的數(shù)據(jù)庫訪問,這可以通過以通過.NET Framework的的Active Data Objects .NET(AD0.NET)局部來實
15、現(xiàn)。也可以使用許多其他資源,例局部來實現(xiàn)。也可以使用許多其他資源,例如創(chuàng)立聯(lián)網(wǎng)組件、輸出圖形、執(zhí)行復雜數(shù)學任務的工具。如創(chuàng)立聯(lián)網(wǎng)組件、輸出圖形、執(zhí)行復雜數(shù)學任務的工具。 2021-12-29C# 程序設計 By 張祖法第15頁1.2.2 本書中的本書中的C# 本書的第l局部介紹了C#語言的語法和用法,但不過分強調(diào)NET Framework。這是必需的,因為我們不能沒有一點兒C#編程根底就使用NET Framework。首先介紹一些比較簡單的內(nèi)容,把面向對象編程(Object-Oriented Programming,OOP)的問題放在根底知識的后面論述。假定讀者沒有一點幾編程的知識,這些是首要
16、的規(guī)那么。 學習了根底知識后,本書還將介紹如何開發(fā)上一節(jié)列出的應用程序類型。本書的第ll局部討Windows Forms編程,第局部研究Web應用程序和Web效勞編程,第局部講述數(shù)據(jù)訪問(訪問數(shù)據(jù)庫、文件系統(tǒng)和XML數(shù)據(jù)),第V局部介紹其他有趣的NET論題(倒如程序集和圖形編程)。2021-12-29C# 程序設計 By 張祖法第16頁 1.3 Visual Studio 2021 1.3.1 Visual Studio 2021 Express產(chǎn)品 1.3.2 解決方案 在使用VS開發(fā)應用程序時,可以通過創(chuàng)立解決方案來完成。在vs術語中,解決方案不僅僅是一個應用程序,它還包含工程,可以是Wi
17、ndows Forms工程、Web Form工程等。但是,解決方案可以包含多個工程,這樣,即使相關的代碼最終在硬盤上的多個位置編譯為多個程序集也可以把它們組合到一個地方。這是非常有用的,因為它可以處理“共享代碼(這些代碼放在GAC中),同時,應用程序也使用這段共享代碼。在使用惟一的開發(fā)環(huán)境時調(diào)試代碼是非常容易的,因為可以在多個代碼塊中單步調(diào)試指令。2021-12-29C# 程序設計 By 張祖法第17頁 小結小結本章簡要介紹了NET Framework,并討論了如何輕松地創(chuàng)立各種強大的應用程序。還探討了把用C#語言編寫的代碼轉換為可運行的應用程序所需要做的工作,以及使用在NET CommonLanguage Runtime下運行的托管代碼有什么優(yōu)點。 本章還闡述
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅老舊電梯更新改造項目進度安排與時間節(jié)點
- 2025年生鮮電商項目合作計劃書
- 4S店裝修設計合同范本
- 大學通識教育面臨的主要問題
- 2025年度汽車牌照借用與租賃期限調(diào)整協(xié)議
- 2025年度私人法律援助合作協(xié)議
- 第九單元實驗活動6一定溶質(zhì)質(zhì)量分數(shù)的氯化鈉溶液的配制教學設計-2024-2025學年九年級化學人教版(2024)下冊
- 住宅老舊電梯更新改造實施方案
- 2025年度跨國公司股權變更協(xié)議書模板
- 2025年度文化產(chǎn)業(yè)項目投資合同格式規(guī)范
- 《學位論文選題與寫作》教學大綱
- 廣西版五年級下冊美術全冊教案【完整版】
- 《三國演義》題庫單選題100道及答案解析
- 全國網(wǎng)約車出租車駕駛員公共題模擬考試題及答案
- 2024電動牙刷行業(yè)洞察
- 總經(jīng)理助理招聘面試題與參考回答(某大型央企)2025年
- 高盛-比亞迪:全球汽車市場上的新興領先企業(yè)-2024-10-企業(yè)研究
- 無人機實操技術課件:模擬器飛行
- 2024-2030年一次性治療服裝市場發(fā)展現(xiàn)狀分析及行業(yè)投資戰(zhàn)略研究報告
- 關于開展農(nóng)業(yè)領域非法集資活動風險排查工作的總結
- 幼兒園食品安全教育課件
評論
0/150
提交評論