C#教學課件:第1章 C#入門基礎_第1頁
C#教學課件:第1章 C#入門基礎_第2頁
C#教學課件:第1章 C#入門基礎_第3頁
C#教學課件:第1章 C#入門基礎_第4頁
C#教學課件:第1章 C#入門基礎_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第1章 C#入門基礎1內(nèi)容簡介 C#(C Sharp)是微軟公司在2000年6月發(fā)布的一種新的編程語言,也是微軟為.NET Framework量身訂做的程序語言。它擁有C/C+的強大功能以及Visual Basic簡易使用的特性。本章詳細介紹C#的入門知識,包括.NET Framework和程序集的概念、命名空間以及如何安裝.NET Framework的開發(fā)環(huán)境等內(nèi)容。 通過本章的學習,用戶可以了解C#、.NET Framework和Visual Studio 的相關知識,并且可以使用Visual Studio創(chuàng)建第一個控制臺應用程序和窗體應用程序。2.NET平臺全新的語言安德斯海爾斯伯格(A

2、nders Hejlsberg,1960.12),丹麥人,發(fā)明了 Delphi、C# 兩種著名編程語言Turbo Pascal編譯器的主要作者Delphi之父C#之父1996年從Borland公司到微軟主持了Visual J+的開發(fā)微軟.Net的首席架構師,.Net概念的發(fā)起人之一31.1 C#語言簡介 C#與Java有著驚人的相似,它包括了單一繼承、界面、與Java幾乎相同的語法、和編譯成中間代碼再運行的過程。 C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C+衍生出來的面向對象的編程語言。它繼承了C和C+強大功能的同時去掉了一些它們的復雜特性,并且它綜合了VB簡單的可視化操作和C+的高運

3、行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向對象編程的支持成為.NET開發(fā)的首選語言。如表1列出了C#語言和C+語言的主要區(qū)別。C#C+編譯目標編譯為中間語言代碼,執(zhí)行時再通過JIT將需要的模塊臨時編譯成本地代碼直接編譯為本地可執(zhí)行的代碼內(nèi)存管理采用垃圾回收機制自動回收不再使用的內(nèi)存顯式刪除動態(tài)分配給堆的內(nèi)存指針基本不使用指針可以大量的使用指針庫依賴于.NET Framework類庫依賴于以繼承和模板為基礎的標準庫繼承只能單繼承,但是可以實現(xiàn)多個接口允許多繼承 .NET Framework簡介.1 任何程序語言的運行都需要一個開發(fā)環(huán)境

4、,C#語言的開發(fā)環(huán)境就是.NET Framework,簡稱為.NET,也叫.NET框架。 本節(jié)介紹.NET Framework的相關知識,包括.NET的概念、功能體現(xiàn)和.NET Framework的重要組件等內(nèi)容。.NET Framework簡介公共語言運行庫類庫51.2.1 .NET Framework概述 .NET Framework是由微軟開發(fā),致力于敏捷軟件開發(fā)、快速應用開發(fā)、平臺無關性和網(wǎng)絡透明化的軟件開發(fā)平臺。它以公共語言運行庫為基礎,支持多種語言(如C#、VB、C+和Python等)的開發(fā)。 .NET Framework的功能非常強大,主要體現(xiàn)在以下方面:提供一個面向對象的編程環(huán)

5、境,完全支持面向對象編程提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境提供一個可提高代碼執(zhí)行安全性的代碼執(zhí)行環(huán)境提供一個可消除腳本環(huán)境或解釋環(huán)境性能問題的代碼執(zhí)行環(huán)境對Web應用和Web Service(Web服務)提供強大支持6 .NET Framework主要有兩個組件:公共語言運行時和.NET Framework類庫。公共語言運行時是.NET Framework的基礎。.NET框架的核心操作系統(tǒng)公共語言運行時 (CLR)VC+.NETC#VB.NETVJ#.NET Framework 類庫 (FCL)7 C#所開發(fā)的程序源代碼并不是編譯成能夠直接在操作系統(tǒng)上執(zhí)行的二進制本地代碼。與

6、Java類似,它被編譯成為中間代碼MSIL(Microsoft Intermediate Language )。然后通過.NETFramework的虛擬機(通用語言運行時CLR)執(zhí)行。執(zhí)行時,.Net Framework將中間代碼翻譯成為二進制機器碼,使它得到正確的運行。 因此雖然最終的程序仍然具有“.exe”的后綴名,但是如果計算機上沒有安裝.Net Framework,將不能夠被執(zhí)行。C#-VB.NET-代碼被執(zhí)行 MSIL CLRC#編譯器VB.NET編譯器81.2.2 公共語言運行時 公共語言運行時(Common Language Runtime,簡稱CLR)是.NET 的基礎,是所有

7、.NET應用程序運行時的環(huán)境和編程基礎。 包括兩部分: 1、CTS(Common Type System,通用類型系統(tǒng)) CTS定義了如何在運行庫中聲明、使用和管理類型,同時也是運行庫支持跨語言集成的重要組成部分,用于解決不同語言的數(shù)據(jù)類型不同的問題。例如:VB.NET的Integer和C#的int型都被編譯成Int32 。 CTS執(zhí)行的主要功能如下:建立一個支持跨語言的集成、類型安全和高性能代碼執(zhí)行的框架提供一個支持完整實現(xiàn)多種編程語言的面向對象的模型定義各語言必須遵守的規(guī)則,有助于確保用不同語言編寫的對象能夠交互作用2、 CLS(Common Language Specification,

8、公共語言規(guī)范) CLS是指確定公共語言運行庫如何定義、使用和管理類型的規(guī)范。它定義了.NET平臺下各種語言必須支持的最小特征,以及各語言之間實現(xiàn)互操作所需要的完備特征。(例如:是否區(qū)分大小寫)91.2.3 類庫 .NET Framework類庫是一個綜合性的面向對象的可重用類型集合,它是一個由Windows軟件開發(fā)工具包中包含的類、接口和值類型所組成的庫。 .NET框架類庫提供了大量實用的類,是開發(fā)程序時的重要資源。10類庫龐大的類庫數(shù)量170多個命名空間,上千個類功能齊全,方便使用對文件的基本操作、對網(wǎng)絡的訪問安全控制、對圖形的操作11 .NET Framework類庫由許多程序集組成,它提

9、供了多種功能,如讀取和寫入文件、從數(shù)據(jù)庫保存和檢索信息以及提供窗體的功能等。 下表列出了類庫中常用的程序集。程序集名稱說明System.dll定義數(shù)據(jù)類型,如Int和LongSystem.Windows.Forms.dll包含桌面應用程序的窗體組件,以及創(chuàng)建這些窗體的組件System.XML.dll包含處理文檔所必需的組件System.Drawing.dll包含用于向輸出設備繪制各種圖形(如直線、橢圓等)的組件System.Data.dll定義組成ADO.NET的組件121.3 程序集 通常,靜態(tài)的程序集可以由4個元素組成:程序集清單 包含程序集元數(shù)據(jù),它是必需的內(nèi)容類型元數(shù)據(jù)實現(xiàn)這些類型的M

10、icrosoft中間語言(MSIL)代碼資源集圖4 程序中的元素分組有幾種方法:(1)將所有元素分組到單個文件中。(2)如果希望組合不同語言編寫的模塊并優(yōu)化應用程序的下載過程,可以創(chuàng)建多文件程序集。圖5 圖4和圖5分別表示單文件程序集和多文件程序集的結構。 圖5中三個文件屬于一個程序集。對于文件系統(tǒng)而言,這3個文件是獨立的文件,但是U被編譯為一個模塊,它不包含任何程序集信息。當創(chuàng)建了程序集后,該程序集清單被添加到MyAssembly.dll,指示程序集與U模塊和Graphic.hmp的關系。131.4 命名空間 .Net FrameWork中的類都包含在命名空間里面。 在使用.NET Fram

11、ework類庫時,常常會引入一些相應的命名空間。命名空間使用關鍵字namespace表示,它提供了一個組織相關類和其他類型的方式,它是一種邏輯組合,而不是物理組合。 可以將命名空間理解為組,組中包含的是具有相同或類似功能的類。每一個程序集可以包含一個或多個組,如System.dll中就包含了System.Int16 、System.Int32 和System.String類等。 一個程序集中可以包含多個命名空間,一個命名空間也可以在多個程序集中。 14程序開發(fā)過程中常用的命名空間命名空間說明System可叫做根命名空間,它包含.NET Framework類庫中的其他所有命名空間System.D

12、ata包含提供數(shù)據(jù)訪問功能的命名空間和類System.Drawing包含了提供與Windows圖形設備接口的接口類System.IO包含了用于讀寫數(shù)據(jù)流/文件和普通輸入/輸出(I/O)功能的類System.Windows.Forms定義包含工具箱中的控件及窗體自身的類System.Net包含了用于網(wǎng)絡通信的類或命名空間System.Xml包含用于處理XML數(shù)據(jù)的類System.Text包含表示ASCII、Unicode和UTF-8等字符編碼的類15System.Data/命名空間提供對表示ADO.NET結構的類的訪問。通過ADO.NET可以生成一些組件,用于有效管理多個數(shù)據(jù)源的數(shù)據(jù)。Syste

13、m.Data.Common/命名空間包含由各種.NETFramework數(shù)據(jù)提供程序共享的類。System.Data.Odbc/用于ODBC的.NETFramework數(shù)據(jù)提供程序。 System.Data.OleDb/用OLEDB的.NETFramework數(shù)據(jù)提供程序。System.Data.Sql/命名空間包含支持SQLServer特定功能的類。 System.Data.OracleClient/是用于Oracle 的.NETFramework數(shù)據(jù)提供程序。 System.Data.SqlClient/是SQLServer的.NETFramework數(shù)據(jù)提供程序。 System.Data

14、.SqlTypes/命名空間為SQLServer中的本機數(shù)據(jù)類型提供類。 16System.Drawing/命名空間提供了對GDI+基本圖形功能的訪問。System.Drawing.Design/命名空間包含擴展設計時用戶界面(UI)邏輯和繪制的類。 System.Drawing.Drawing2D/命名空間提供高級的二維和矢量圖形功能 System.Drawing.Imaging/命名空間提供高級GDI+圖像處理功能System.Drawing.Text/命名空間提供高級GDI+排版功能。System.Globalization/命名空間包含定義區(qū)域性相關信息的類,這些信息包括語言、國家/地

15、區(qū)、使用的日歷、日期、貨幣和數(shù)字的格式模式以及字符串的排序順序。我們可以使用這些類編寫全球化(國際化)應用程序17System.IO/命名空間包含允許讀寫文件和數(shù)據(jù)流的類型以及提供基本文件和目錄支持的類型。System.Management/提供對大量管理信息和管理事件集合的訪問,這些信息和事件是與根據(jù)Windows管理規(guī)范(WMI)結構對系統(tǒng)、設備和應用程序設置檢測點有關的System.Net/命名空間為當前網(wǎng)絡上使用的多種協(xié)議提供了簡單的編程接口 System.Net.Mail/命名空間包含用于將電子郵件發(fā)送到簡單郵件傳輸協(xié)議(SMTP)服務器進行傳送的類18System.Timers/提

16、供Timer組件,可以指定間隔引發(fā)事件。System.Web/提供使得可以進行瀏覽器與服務器通信的類和接口。System.Web.Caching/提供用于緩存服務器上常用數(shù)據(jù)的類。 System.Web.Configuration/包含用于設置ASP.NET配置的類。 System.Web.Handlers/命名空間包含的HTTP處理程序類用于處理對Web服務器發(fā)出的請求。 System.Web.Services/命名空間由使您可以用ASP.NET和XMLWebservices客戶端來創(chuàng)建XMLWebservices的類組成 System.Web.UI/命名空間提供的類和接口可用于創(chuàng)建ASP.

17、NET服務器控件以及用作ASP.NETWeb應用程序用戶界面的ASP.NET網(wǎng)頁 System.Xml/命名空間為處理XML提供基于標準的支持。 19 除了系統(tǒng)提供的命名空間外,用戶也可以自定義命名空間。自定義命名空間需要使用關鍵字namespace。它的定義規(guī)則如下:命名空間名可以是任何合法的標識符,也可以包含句號“.”無論用戶是否顯示聲明命名空間,編譯器都會添加一個默認的命名空間。該未命名的命名空間存在于每一個文件中命名空間隱式具有公共訪問權,并且是不可修改的在兩個或更多的聲明中可以定義一個命名空間引用命名空間: using 20命名空間與程序集的區(qū)別 命名空間用于對類型進行邏輯分組(針對

18、開發(fā)人員)。 程序集則是程序的物理分組(針對安裝和部署),對應于一個dll或exe文件。采用兩種分組的好處 由不同的部門共同開發(fā)同一個命名空間的不同組件時,各部門可以把他們開發(fā)的東西編譯成各自的dll文件。使用時把幾個dll一起引用即可。 一個命名空間里包含的類型很多,而有很多是用不上的。如果把一個命名空間編譯成一個dll,則會降低運行效率。 有時需要對一個命名空間內(nèi)的類型區(qū)別對待。例如,所開發(fā)的軟件分普通版、專業(yè)版、高級版,越高的版本具有越高的權限(當中包含了一些高級的類),這時可以把高級的功能放到一個單獨的dll來控制。21.NET框架可構建的應用類型Windows應用程序控制臺應用程序W

19、indows服務Web應用程序Web service應用面向office應用智能設備應用221.5 安裝Visual Studio Visual Studio 和.NET Framework的關系如圖6所示。圖6 從圖6中可以看出,Visual Studio依賴于.NET Framework提供的服務。這些服務包括Microsoft公司或者第三方提供的語言編譯器。用戶在執(zhí)行.NET Framework語言開發(fā)的應用程序時必須安裝.NET Framework,不過.NET Framework會在安裝Visual Studio程序時自動安裝。231.7 創(chuàng)建第一個控制臺應用程序 在本案例中新建控制

20、臺應用程序,然后輸出一句話:“大家好,這是我的第一個項目?!?(1)單擊【開始】|【程序】|Microsoft Visual Studio |Microsoft Visual Studio 的命令,打開【起始頁-Microsoft Visual Studio】的對話框。 (2)在起始頁中單擊【新建項目】選項或者單擊【文件】|【新建】|【項目】選項,彈出【新建項目】對話框。 (3)在【新建項目】對話框中,左側選擇Visual C#選項,中間選擇【控制臺應用程序】選項,然后輸入要添加的應用程序名稱,也可以重新設置路徑。如圖17所示。全部完成后,單擊【確定】按鈕。241.7 創(chuàng)建第一個控制臺應用程序

21、 (4)打開新添加的項目,在Program.cs文件的Main()方法中添加要輸出的內(nèi)容。具體代碼如下:static void Main(string args) Console.WriteLine(“大家好,這是我的第一個項目。); (5)單擊【調試】|【啟動調試】選項或直接單擊F5運行。為了看清控制臺的輸出,可加上: Console.ReadLine(); 2526Console類輸出到控制臺Console.WriteLine(輸出的值); 向控制臺直接輸出后換行Console.WriteLine(); Console.Write(輸出的值);向控制臺輸出,不換行Console.Write

22、(); Console.Beep(); 通過控制臺揚聲器播放提示音Console.WriteLine(輸出的格式字符串,變量列表);Console.Write(輸出的格式字符串,變量列表);例:Console.WriteLine(“團隊名稱是0,包括1,2等組員” , groupName,strName1,strName2); 括號中包含兩類參數(shù):“格式字符串”和變量列表。格式字符串中的0、1、2、3叫做占位符,代表后面依次排列的變量表,從0開始,依次類推,完成輸出。27Console類 從控制臺輸入 Console.ReadLine() 返回字符串型數(shù)據(jù),能讀多個字符也可換行讀取??梢园逊祷?/p>

23、值直接賦給字符串變量,如: string strname=Console.ReadLine();有時需要從控制臺輸入數(shù)字,就要做數(shù)據(jù)轉換,如: int num = int.Parse(Console.ReadLine(); int num = Convert.ToInt32(Console.ReadLine();上面兩句代碼效果相同,可以根據(jù)自己的習慣選擇任意一種。Console.Read(),返回首字符的ASCII碼(int類型),只能讀取第一個字符。例: Console.WriteLine(Console.ReadLine() 1.8 創(chuàng)建第一個窗體應用程序 例:創(chuàng)建窗體應用程序,單擊窗體

24、上的按鈕檢測用戶輸入的IP地址是否合法。 (1)打開Visual Studio ,然后單擊【文件】|【新建】|【項目】選項,彈出【新建項目】對話框。 (2)在【新建項目】對話框中,中間選擇【W(wǎng)indows窗體應用程序】選項,然后輸入保存窗體應用程序的名稱,選擇保存的路徑。輸入完成后,單擊【確定】按鈕。281.8 創(chuàng)建第一個窗體應用程序 (3)將默認生成名稱為Form1的窗體重新命名為TestIP,從左側【工具箱】中向該窗體添加Label控件、TextBox控件和Button控件。 (4)使用Ping類和PingReply類實現(xiàn)檢測IP地址的功能。為【測試】按鈕的Click事件添加如下的代碼:2

25、9using System.Net.NetworkInformation;private void button1_Click(object sender, EventArgs e) Ping testPing = new Ping();/創(chuàng)建Ping類的實例對象 PingReply reply = testPing.Send(textBox1.Text); / /調用Send()方法 if (reply.Status = IPStatus.Success)/判斷IP地址是否合法 string message = string.Format(地址:0連接測試成功!, textBox1.Text); MessageBox.Show(message); else string message = string.Format(地址:0連接測試失敗!, textBox1.Text); MessageBox.Show(message); 30private void button1_Click(object sender, EventArgs e) Ping testPing = new Ping(); try PingReply reply = testPing.Send(textBox1.Text); if (reply.Status = IPSt

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論