版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、2第2章 C# 語言快速學(xué)習(xí)本章要點:要從事ASP.NET開發(fā)就必須了解什么是.NET平臺,因為ASP.NET是整個.NET技術(shù)的一部分。本章主要從程序開發(fā)的角度闡述什么是.NET,重點介紹公共語言運行庫以及.NET框架類庫,并通過實際的例子展示在.NET平臺下的跨語言編程。在.NET環(huán)境下,各種語言要被編譯成為微軟中間語言,然后在公共語言運行庫上運行,雖然這時候所有的語言只是合成微軟中間語言的工具而已,無論使用哪種語言都可以達到同樣的目的,但微軟公司還是隨著.NET平臺同時推出了一種新的編碼語言C#(讀C Sharp)。在.NET環(huán)境下,利用C# 語言可以編寫6種不同類型的應(yīng)用程序:Wind
2、ows 應(yīng)用程序(具有Windows用戶界面的 Visual C# 應(yīng)用程序);類庫(為創(chuàng)建可在其他應(yīng)用程序中使用的類而創(chuàng)建一個項目);控制臺應(yīng)用程序(具有命令行界面的Visual C# 應(yīng)用程序);ASP.NET Web應(yīng)用程序(具有Web用戶界面的 Visual C#應(yīng)用程序);Web服務(wù)(使用 Visual C# 創(chuàng)建其他應(yīng)用程序可以訪問的 XML Web Services);ASP.NET移動Web應(yīng)用程序(可以在 PDA、移動電話和其他移動設(shè)備上查看的應(yīng)用程序)。3第2章 C# 語言快速學(xué)習(xí)本章內(nèi)容包括: .NET預(yù)覽 公共語言運行庫介紹 跨語言編程 .NET框架類庫 C# 語言數(shù)據(jù)
3、結(jié)構(gòu) C# 語言基本語句 類與方法 面向?qū)ο蟪绦蛟O(shè)計 繼承和多態(tài)42.1 .NET預(yù)覽從從2000年年6月開始,月開始,.NET這個名詞頻頻出現(xiàn)在這個名詞頻頻出現(xiàn)在各種媒體以及書籍上,比爾各種媒體以及書籍上,比爾蓋茨曾多次表蓋茨曾多次表示示.NET對于微軟的意義決不亞于當(dāng)年對于微軟的意義決不亞于當(dāng)年Windows系統(tǒng)的誕生。系統(tǒng)的誕生。.NET包含的內(nèi)容非常包含的內(nèi)容非常多,本章只是重點介紹與程序開發(fā)關(guān)系密切相多,本章只是重點介紹與程序開發(fā)關(guān)系密切相關(guān)的內(nèi)容,從一個程序員的視點闡述什么關(guān)的內(nèi)容,從一個程序員的視點闡述什么是是.NET。52.1.1 .NET是什么Microsoft.NET是是M
4、icrosoftXMLWebServices平臺。平臺。XMLWebServices允許應(yīng)用程序通過允許應(yīng)用程序通過Internet進進行通訊和共享數(shù)據(jù),而不管所采用的是哪行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語言。種操作系統(tǒng)、設(shè)備或編程語言。Microsoft.NET平臺提供創(chuàng)建平臺提供創(chuàng)建XMLWebservices并將這些服務(wù)集成在一起使用。并將這些服務(wù)集成在一起使用。.NET的核心是的核心是“XMLWebServices”,除去這層意思,上面的話就直接表明除去這層意思,上面的話就直接表明Microsoft.NET其實是一個平臺其實是一個平臺(如圖如圖2.1),這點是
5、問題的本質(zhì),這說明,這點是問題的本質(zhì),這說明Microsoft.NET并不是一門新的編程語并不是一門新的編程語言,更不是一個操作系統(tǒng),而是一種基礎(chǔ)言,更不是一個操作系統(tǒng),而是一種基礎(chǔ)設(shè)施,一種環(huán)境。設(shè)施,一種環(huán)境。62.1.2 .NET設(shè)計目標(biāo).NET的設(shè)計理念就是的設(shè)計理念就是“軟件變服務(wù)軟件變服務(wù)”,它完,它完全消除了全消除了COM的缺陷,不再出現(xiàn)注冊,實現(xiàn)的缺陷,不再出現(xiàn)注冊,實現(xiàn)了通用類型系統(tǒng),定義了統(tǒng)一的實例和類型,了通用類型系統(tǒng),定義了統(tǒng)一的實例和類型,體現(xiàn)了清晰的面向?qū)ο缶幊?。另外,體現(xiàn)了清晰的面向?qū)ο缶幊獭A硗猓?NET所提所提供的開發(fā)環(huán)境更加健壯和安全,應(yīng)用程序和組供的開發(fā)環(huán)
6、境更加健壯和安全,應(yīng)用程序和組件可以共享或私有,統(tǒng)一組件的多個版本可以件可以共享或私有,統(tǒng)一組件的多個版本可以共存,而且它內(nèi)置了很多安全控制,如強制代共存,而且它內(nèi)置了很多安全控制,如強制代碼訪問安全機制,基于代碼運行的身份控制安碼訪問安全機制,基于代碼運行的身份控制安全機制,通過配置策略文件管理安全機制,全機制,通過配置策略文件管理安全機制,ASP.NET身份驗證機制等。身份驗證機制等。72.2 .NET核心介紹如圖如圖2.2所示,在介紹所示,在介紹.NET的書籍里的書籍里都會有這幅圖,因為它很清楚的反映都會有這幅圖,因為它很清楚的反映了了.NET中與開發(fā)有關(guān)的主要元素以及中與開發(fā)有關(guān)的主要
7、元素以及它們之間的層次關(guān)系。它們之間的層次關(guān)系。ASP.NET是使開發(fā)人員能夠使是使開發(fā)人員能夠使用用.NET開發(fā)基于開發(fā)基于Web的應(yīng)用程序的的應(yīng)用程序的環(huán)境,用來設(shè)計部署在服務(wù)器上的環(huán)境,用來設(shè)計部署在服務(wù)器上的Web站點以及我們平常所說的站點以及我們平常所說的B/Sj結(jié)結(jié)構(gòu)程序構(gòu)程序(如圖如圖2.3);XMLWebServices是類似于常見是類似于常見Web站點的應(yīng)站點的應(yīng)用程序組件,但是與用程序組件,但是與Web的應(yīng)用程序的應(yīng)用程序不同,它不具有界面并且不以瀏覽器不同,它不具有界面并且不以瀏覽器為目標(biāo),它作為傳統(tǒng)的客戶端應(yīng)用程為目標(biāo),它作為傳統(tǒng)的客戶端應(yīng)用程序、序、Web應(yīng)用程序、其
8、他應(yīng)用程序、其他XMLWebServices組件來使用。組件來使用。82.2.1 公共語言運行庫(CLR)如圖2.4列出了公共語言運行庫所能實現(xiàn)的絕大部分功能,它管理運行代碼,確認(rèn)類型的安全性,提供垃圾收集,異常處理,對半信任代碼的訪問安全控制,提供公共類型系統(tǒng)(Common Type System),可以訪問系統(tǒng)資源和本地 API。1. CLR編譯執(zhí)行模型首先,公共語言運行庫其實就是一個虛首先,公共語言運行庫其實就是一個虛擬機擬機 由于所有語言最終被編譯成微軟中間語由于所有語言最終被編譯成微軟中間語言言(公共語言運行庫內(nèi)建了統(tǒng)一的對象系公共語言運行庫內(nèi)建了統(tǒng)一的對象系統(tǒng)統(tǒng)),只要選擇喜歡的語
9、言使用即可,目,只要選擇喜歡的語言使用即可,目前支持前支持20多種語言,包括多種語言,包括VB、C+、C#、Java、Jscript、Perl和和COBOL,并能,并能實現(xiàn)跨語言繼承,調(diào)試器等可以跨語言實現(xiàn)跨語言繼承,調(diào)試器等可以跨語言工作。工作。92.2.1 公共語言運行庫(CLR)2. CLR編譯執(zhí)行過程公共語言運行庫的編譯執(zhí)行過程如圖2.6所示,一旦目標(biāo)類被裝載,類裝載器向該類的每個方法發(fā)出一個小的存根,就像一個函數(shù)的頭。 類裝載器。 類驗證器。 JIT編譯器。 102.2.2 .NET框架類庫(FCL)1. .NET數(shù)據(jù)類型值類型:在堆棧中分配的值,不能為空,變量按值傳遞,是密封的,包
10、括下面內(nèi)容?;绢愋?;結(jié)構(gòu)體;枚舉。引用類型:變量按指針傳遞,包括下面內(nèi)容。類;接口;代理。2. .NET命名空間.NET框架類庫非常的龐大,為了能使學(xué)習(xí)和使用更加的簡單和容易,7000多個類型按照一定的規(guī)則劃分為100多個命名空間(圖2.10) 。112.2.2 .NET框架類庫(FCL)3. .NET Framework 類庫常用命名空間 System System.Collections System.Collections.Specialized System.Configuration System.Data System.Drawing System.IO System.Net S
11、ystem.Runtime.Remoting System.Security System.Threading 122.2.2 .NET框架類庫(FCL)System.Web System.Web.Security System.Web.Services System.Web.UI System.Web.UI.Design System.Web.UI.WebControls System.Windows.Forms System.Windows.Forms.Design System.Xml 132.3 第一個C# 程序【例【例2.2】HelloWorld示例程序示例程序(1)確保系統(tǒng)里安裝了
12、Internet信息服務(wù)(IIS),Visual Studio .NET企業(yè)級結(jié)構(gòu)設(shè)計版或者企業(yè)開發(fā)版。(2)打開Visual Studio .NET企業(yè)級結(jié)構(gòu)設(shè)計版或者企業(yè)開發(fā)版軟件,選擇菜單【文件】|【新建】|【項目】命令,彈出【新建項目】對話框。(3)在【新建項目】對話框左邊的菜單里,選擇【Visual C#項目】,在【模板】面板中選擇【ASP.NET Web應(yīng)用程序】,在【名稱】文本框里輸入項目名稱,這里輸入 http:/localhost/HelloWorld,然后單擊【確定】按鈕創(chuàng)建解決方案。(4)在【解決方案資源管理器】里雙擊WebForm1.aspx文件,則在右邊出現(xiàn)WebFo
13、rm1.aspx文件的設(shè)計界面,選擇菜單【視圖】|【工具箱】命令打開工具箱面板,然后雙擊或者拖動工具箱面板中的Button和Label控件到WebForm1.aspx文件設(shè)計界面上,如圖2.11。142.3 第一個C# 程序(5) 右鍵單擊右鍵單擊WebForm1.aspx文件設(shè)計界面的文件設(shè)計界面的Button控件,選擇【屬性】對話框,然后在屬性面控件,選擇【屬性】對話框,然后在屬性面板里修改板里修改Text屬性為屬性為HelloWorld,用同樣方法調(diào)出,用同樣方法調(diào)出Label屬性面板,刪除它的屬性面板,刪除它的Text屬性值。屬性值。(6) 雙擊雙擊Button控件,在彈出的控件,在彈
14、出的WebForm1.aspx.cs文件里修改代碼如下:文件里修改代碼如下:代碼2.7private void Button1_Click(object sender, System.EventArgs e)String labelText = “Hello World!”; Label1.Text = labelText;152.4 C# 程序結(jié)構(gòu)介紹C#語言程序的程序結(jié)構(gòu)包括命名空間語言程序的程序結(jié)構(gòu)包括命名空間(包含類包含類型和其他命名空間型和其他命名空間)、類型定義、類型定義(包含類、結(jié)構(gòu)、包含類、結(jié)構(gòu)、接口、枚舉以及代理接口、枚舉以及代理)和流程控制和流程控制(包含條件語包含條件語句
15、、循環(huán)語句等句、循環(huán)語句等)。它沒有頭文件也沒有對聲。它沒有頭文件也沒有對聲明次序的依賴。明次序的依賴。C#程序可由一個或多個文件組程序可由一個或多個文件組成。每個文件可包含一個或多個命名空間。一成。每個文件可包含一個或多個命名空間。一個命名空間除了可包含其他命名空間外,還可個命名空間除了可包含其他命名空間外,還可包含類、結(jié)構(gòu)、接口、枚舉、代理等類型。包含類、結(jié)構(gòu)、接口、枚舉、代理等類型。162.4.1 C# 語言數(shù)據(jù)類型1. 系統(tǒng)內(nèi)建各種類型具體的各種C# 內(nèi)置數(shù)據(jù)類型見表2.1。語言類型數(shù) 據(jù) 類 型引用類型object, string值類型sbyte, short, int, long(
16、有符號)byte, ushort, uint, ulong(無符號)float, double, decimal(浮點數(shù))char(字符)Bool(邏輯)172.4.1 C# 語言數(shù)據(jù)類型2. 使用內(nèi)置數(shù)據(jù)類型內(nèi)置數(shù)據(jù)類型是命名空間System提供類型的別名,比如,int = System.Int32,和其他語言一樣,內(nèi)置的數(shù)據(jù)類型在具體的編程過程中有3種用法。1)作為變量2)作為常數(shù)3)作為參數(shù)182.4.2 基本語句1. 命名空間和分隔符在C# 程序中,用作為程序段的分隔符,從而區(qū)分各個不同的命名空間、類、函數(shù)等的范圍。一些要注意的地方如圖2.12所示。2. 流程控制C#語言和其他語言一樣
17、也有著流程控制語句,實現(xiàn)的功能包括選擇、循環(huán)、跳轉(zhuǎn),關(guān)于這些基本的if、case等語句和C+、Java等語言都很相似,這里不再一一介紹,如果不清楚的地方,可以在MSDN上查找或者參閱其他介紹C# 語言的書籍。192.4.3 類與方法為了說明類與方法,還是堅持一貫的原則,先用代碼來說話,為了說明類與方法,還是堅持一貫的原則,先用代碼來說話,關(guān)于概念問題在后面的關(guān)于概念問題在后面的“面向?qū)ο缶幊堂嫦驅(qū)ο缶幊獭币还?jié)中有所介紹,這一節(jié)中有所介紹,這里先來修改代碼里先來修改代碼2.8,產(chǎn)生代碼,產(chǎn)生代碼210和代碼和代碼2.11,代碼,代碼2.12三個三個版本的代碼,但實現(xiàn)的功能是差不多的,下面就具體比
18、較一下版本的代碼,但實現(xiàn)的功能是差不多的,下面就具體比較一下這這3段代碼,從而說明類與方法的使用。(參見教材段代碼,從而說明類與方法的使用。(參見教材P32)比較代碼比較代碼2.10和代碼和代碼2.8,它們實現(xiàn)的功能是完全一樣的,但,它們實現(xiàn)的功能是完全一樣的,但是在代碼上是有所區(qū)別的,在代碼是在代碼上是有所區(qū)別的,在代碼2.10中定義了方法中定義了方法ShowMessage,把顯示,把顯示“HelloWorld”信息的功能封裝在里信息的功能封裝在里面;比較代碼面;比較代碼2.10和代碼和代碼2.11,它們實現(xiàn)的功能也是完全一樣,它們實現(xiàn)的功能也是完全一樣,但代碼也存在差異,在代碼但代碼也存在
19、差異,在代碼2.11里不但定義了方法里不但定義了方法ShowMessage,同時也定義了類,同時也定義了類Message;代碼;代碼2.12的在功的在功能上有所變化,它新引進了一個文本框能上有所變化,它新引進了一個文本框TextBox1,從而實現(xiàn),從而實現(xiàn)了在文本框里輸入內(nèi)容,單擊按鈕后頁面顯示文本框中內(nèi)容的了在文本框里輸入內(nèi)容,單擊按鈕后頁面顯示文本框中內(nèi)容的功能。功能。202.5 面向?qū)ο缶幊淌煜っ嫦驅(qū)ο蟮淖x者很快就會發(fā)現(xiàn)上面的代碼是典型熟悉面向?qū)ο蟮淖x者很快就會發(fā)現(xiàn)上面的代碼是典型的結(jié)構(gòu)化的方法,結(jié)構(gòu)化的方法是以具體的功能為核的結(jié)構(gòu)化的方法,結(jié)構(gòu)化的方法是以具體的功能為核心來組織程序的結(jié)
20、構(gòu),它的封裝度僅為心來組織程序的結(jié)構(gòu),它的封裝度僅為1級,即僅有級,即僅有對于特定的功能的封裝對于特定的功能的封裝(函數(shù)函數(shù))。這使得結(jié)構(gòu)化的方法。這使得結(jié)構(gòu)化的方法很難適應(yīng)需求的變化,面向?qū)ο蟮姆椒ㄕ窃谶@一點很難適應(yīng)需求的變化,面向?qū)ο蟮姆椒ㄕ窃谶@一點上優(yōu)于結(jié)構(gòu)化的方法。上優(yōu)于結(jié)構(gòu)化的方法。如果在系統(tǒng)的開發(fā)過程中發(fā)現(xiàn)需要對一種新的錯誤進如果在系統(tǒng)的開發(fā)過程中發(fā)現(xiàn)需要對一種新的錯誤進行處理,比如:用戶認(rèn)證錯誤,該如何做使得我們的行處理,比如:用戶認(rèn)證錯誤,該如何做使得我們的系統(tǒng)能夠增加對于此項功能的需求呢?一種比較簡單、系統(tǒng)能夠增加對于此項功能的需求呢?一種比較簡單、直接的做法就是在增加一
21、條用來處理此項錯誤的直接的做法就是在增加一條用來處理此項錯誤的case語句。這種方法的確能夠工作,但是這樣做是語句。這種方法的確能夠工作,但是這樣做是要付出代價的。要付出代價的。212.6 C# 面向?qū)ο笤O(shè)計C#語言是徹底的面向?qū)ο蟮恼Z言,它擁有和語言是徹底的面向?qū)ο蟮恼Z言,它擁有和其他面向?qū)ο笳Z言共同的特點,如類、接口等;其他面向?qū)ο笳Z言共同的特點,如類、接口等;但它也有自己的一些特點,比如但它也有自己的一些特點,比如.NET有垃圾有垃圾回收機制,內(nèi)存的管理是自動進行的,內(nèi)存的回收機制,內(nèi)存的管理是自動進行的,內(nèi)存的再收集屬于后臺任務(wù),雖然這時候犧牲了一些再收集屬于后臺任務(wù),雖然這時候犧牲了
22、一些性能,但這樣能使開發(fā)者更專注于業(yè)務(wù)的開發(fā)。性能,但這樣能使開發(fā)者更專注于業(yè)務(wù)的開發(fā)。222.6.1 類與對象1. 定義從程序員的角度來講,所謂的類就是一種包括數(shù)據(jù)和功能的數(shù)據(jù)結(jié)構(gòu);對象是類的實例,它有自己的狀態(tài)、行為和特性。類聲明語法:屬性信息訪問修飾字class 標(biāo)識符 :基類,實現(xiàn)的接口類可以嵌套,并且有一系列的訪問修飾符來控制訪問的級別和范圍。public:無訪問限制。private:標(biāo)記為private的類A中的成員,只對類A是可訪問的。protected:標(biāo)記為private的類A中的成員,只對類A和類A的派生類是可訪問的。internal:標(biāo)記為internal的類A中的成員,只對類A所處程序集中的任何類是可訪問的。Internal protected:帶此標(biāo)記的類A中的成員,對類A和從類A派生的類,以及A所處程序集中的任何其他類都是可訪問的。232.6.1 類與對象2. 對象的管理C#語言對于對象的管理機制是很完備的,它可以方便而安全地創(chuàng)建對象,在創(chuàng)建對象時與其他面向?qū)ο笳Z言
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑通信安防施工合同
- 城市河道整治工程合同示范樣本
- 住宅小區(qū)條石堡坎施工合同
- 臨時家庭保姆招聘協(xié)議書
- 水庫加固工程合同管理臺賬
- 市政道路工程師招聘協(xié)議
- 網(wǎng)絡(luò)安全技術(shù)服務(wù)補充協(xié)議
- 杭州投資型二手房交易合同
- 乳制品冷藏庫建設(shè)合同
- 《中原盜夢營銷》課件
- 2024年高考語文備考之現(xiàn)代文閱讀史鐵生《我二十一歲那年》(附習(xí)題+答案)
- 外國新聞傳播史 課件 第21-23章 新西蘭等國的新聞傳播事業(yè)、巴西的新聞傳播事業(yè)、墨西哥的新聞傳播事業(yè)
- 國家安全概論智慧樹知到期末考試答案2024年
- 大數(shù)據(jù)與會計職業(yè)生涯規(guī)劃
- 寧德時代2024年社招測評題庫
- 2023年度省綜合專家?guī)煸u標(biāo)專家繼續(xù)教育培訓(xùn)考試試題(三套)
- 電力配網(wǎng)安全培訓(xùn)課件
- 數(shù)字信號處理試卷及答案
- 電子商務(wù)運營 教案 項目三 網(wǎng)店推廣
- 血栓風(fēng)險評估及個體化干預(yù)(遺傳性易栓癥風(fēng)險基因檢測)
- 胃管置入術(shù)的規(guī)范操作課件
評論
0/150
提交評論