asp程序設(shè)計(jì)第三章_第1頁
asp程序設(shè)計(jì)第三章_第2頁
asp程序設(shè)計(jì)第三章_第3頁
asp程序設(shè)計(jì)第三章_第4頁
asp程序設(shè)計(jì)第三章_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章C#和ASP.NET3.51本章要點(diǎn):了解C#語言特點(diǎn)和編程標(biāo)準(zhǔn)了解常用.NET命名空間熟悉C#根底語法、流程控制能創(chuàng)立簡單的類2目錄3.1C#概述3.2Framework命名空間3.3編程標(biāo)準(zhǔn)3.3.1程序注釋3.3.2命名規(guī)那么3.4常量與變量3.4.1常量聲明3.4.2變量聲明3.4.3修飾符3.4.4局部變量作用范圍3目錄3.5數(shù)據(jù)類型3.5.1值類型

3.5.2引用類型3.5.3裝箱和拆箱3.6運(yùn)算符3.7流程控制3.7.1選擇結(jié)構(gòu)3.7.2循環(huán)結(jié)構(gòu)3.7.3異常處理4目錄3.8自定義ASP.NET類3.8.1類的常識3.8.2屬性3.8.3構(gòu)造函數(shù)3.8.4方法3.8.5事件3.8.6繼承3.9小結(jié)53.1C#概述C#是Microsoft專門為.NET量身打造的一種全新的編程語言。C#已經(jīng)分別被ECMA和ISO/IEC組織接受并形成ECMA-334標(biāo)準(zhǔn)和ISO/IEC23270標(biāo)準(zhǔn)。C#的類型即.NETFramework所提供的類型,并直接使用.NETFramework所提供的類庫。ASP.NET3.5本身就采用C#語言開發(fā),所以C#不僅非常適用于Web應(yīng)用程序的開發(fā)。6典型特點(diǎn)C#代碼在.NETFramework提供的環(huán)境下運(yùn)行,不允許直接操作內(nèi)存,增強(qiáng)了程序的平安性。使用C#能構(gòu)建健壯的應(yīng)用程序。統(tǒng)一的類型系統(tǒng)。所有C#類型都繼承于一個唯一的根類型object。因此,所有類型都共享一組通用操作。完全支持組件編程。73.2Framework命名空間命名空間用于組織.NETFramework提供的幾千個類。作為組織類的邏輯單元,命名空間即成了應(yīng)用程序的內(nèi)部組織形式,也成了應(yīng)用程序的外部組織形式。使用命名空間可以解決類名沖突問題。83.2Framework命名空間〔續(xù)〕利用using語句使用命名空間,如“usingsystem;”表示導(dǎo)入system命名空間。導(dǎo)入命名空間后使得要訪問包含的類時可省略命名空間。例如,假設(shè)沒有使用“usingsystem;”語句,那么“stringstrNum="100";”這個語句就會出現(xiàn)編譯錯誤,此時就應(yīng)該用“System.StringstrNum="100";”代替。9ASP.NET3.5頁面的常用命名空間System:提供根本類,如提供字符串操作的String類。System.Configuration:提供處理配置文件中數(shù)據(jù)的類,如能獲取web.config文件中數(shù)據(jù)庫連接字符串的ConnectionStringSettings類。System.Data:提供對ADO.NET類的訪問,如提供數(shù)據(jù)緩存的DataSet類。System.Ling:提供使用LINQ進(jìn)行查詢的類和接口,如包含標(biāo)準(zhǔn)查詢運(yùn)算符的Queryable類。10ASP.NET3.5頁面的常用命名空間〔續(xù)〕System.Web:提供使瀏覽器與效勞器相互通信的類和接口,如用于讀取客戶端信息的HttpRequest類。:提供在Web效勞器實(shí)現(xiàn)ASP.NET平安性的類,如用于驗(yàn)證用戶憑據(jù)的MemberShip類。:提供用于創(chuàng)立ASP.NET網(wǎng)站用戶界面的類和接口,如每個Web窗體都繼承的Page類。11ASP.NET3.5頁面的常用命名空間〔續(xù)〕:提供在Web窗體頁上創(chuàng)立HTML效勞器控件的類。:提供在Web窗體頁上創(chuàng)立Web效勞器控件的類,如按鈕Button控件類。:提供用于創(chuàng)立個性化Web部件頁的類和接口,如呈現(xiàn)模塊化用戶界面的Part類。:提供用于LINQtoXML的類,如獲取XML元素的Xelement類。123.3編程標(biāo)準(zhǔn)良好的編程標(biāo)準(zhǔn)能極大的提高程序的可讀性。程序注釋命名規(guī)那么133.3.1程序注釋代碼間多行注釋為“/*…*/”,單行注釋采用“//…”。類、方法、屬性、接口的注釋采用XML文檔格式注釋。在{}中包含較多代碼行的結(jié)束處應(yīng)加注釋,便于閱讀。對分支語句〔條件分支、循環(huán)語句等〕必須編寫注釋。143.3.2命名規(guī)那么Pascal形式:指將標(biāo)識符的首字母和后面連接的每個單詞的首字母都大寫,如BackColor。Camel形式:指標(biāo)識符的首字母小寫,而每個后面連接的單詞的首字母都大寫,如backColor。15常用標(biāo)識符的大小寫方式對應(yīng)表dateConnectionCamel變量名RedValuePascal只讀的靜態(tài)字段BackColorPascal屬性WebExceptionPascal異常類typeNameCamel參數(shù)ValueChangedPascal事件System.DrawingPascal命名空間FatalErrorPascal枚舉值ToStringPascal方法ErrorLevelPascal枚舉類型IDisposablePascal接口AppDomainPascal類例如方式標(biāo)識符例如方式標(biāo)識符16命名的其它規(guī)那么用正確的反義詞組命名具有互斥意義的變量或相反動作的函數(shù)等,如insert/delete。常量名都要使用大寫字母,用下劃線“_”分割單詞。除局部循環(huán)變量外,一般變量名不得取單個字符。類的成員變量〔屬性所對應(yīng)的變量〕使用前綴“_”。接口命名在名字前加上“I”前綴,如IDisposable。17常用控件名簡寫對照表控件名簡寫控件名簡寫控件名簡寫LabellblTextBoxtxtRadioButtonrdoButtonbtnLinkButtonlnkbtnImageimgImageButtonimgbtnDropDownListddlRangeValidatorrvListBoxlstDataGriddgRequiredFieldValidatorrfvDataListdlCheckBoxchkCompareValidatorcvCheckBoxListchklsAdRotatorarValidatorSummaryvsRadioButtonListrdoltTabletblRegularExpressionValidatorrevPanelpnlCalendercld183.4常量與變量常量聲明變量聲明修飾符局部變量作用范圍193.4.1常量聲明常量具有在編譯時值保持不變的特性,聲明時使用const關(guān)鍵字,同時必須初始化。常量用易于理解的名稱替代了“含義不明確的數(shù)字或字符串”,使程序更易于閱讀。常量使程序更易于修改。常量的訪問修飾符有public、internal、protectedinternal和private等。203.4.2變量聲明變量在程序運(yùn)行過程中值可以變化,必須先聲明再使用。變量名長度任意,可以由數(shù)字、字母、下劃線等組成,但第一個字符必須是字母或下劃線。C#是區(qū)分大小寫的,因此“strName”和“strname”代表不同的變量。213.4.2變量聲明〔續(xù)〕變量的修飾符有public、internal、protected、protectedinternal、private、static和readonly,C#中將具有這些修改符的變量稱為字段,而把方法中定義的變量稱為局部變量。注意:局部變量前不能添加public、internal、protected、protectedinternal、private、static和readonly等修飾符。223.4.3修飾符訪問修飾符public:訪問不受限制,任何地方都可訪問。internal:在當(dāng)前程序中能被訪問。protected:在所屬的類或派生類中能被訪問。protectedinternal:在當(dāng)前的程序或派生類中能被訪問。private:在所屬的類中能被訪問。233.4.3修飾符〔續(xù)〕static 使用static聲明的變量稱靜態(tài)變量,又稱為靜態(tài)字段。對于類中的靜態(tài)字段,在使用時即使創(chuàng)立了多個類的實(shí)例,都僅對應(yīng)一個實(shí)例副本。訪問靜態(tài)字段時只能通過類直接訪問,而不能通過類的實(shí)例來訪問。readonly 使用readonly聲明的變量稱只讀變量,這種變量被初始化后在程序中不能修改它的值。243.4.4局部變量作用范圍塊級:作用域范圍最小的變量,如包含在if、while等語句段中的變量。這種變量僅在塊內(nèi)有效,在塊結(jié)束后即被刪除。方法級:作用于聲明變量的方法中,在方法外即不能訪問。對象級:作用于定義類的所有方法中,只有相應(yīng)的ASP.NET頁面結(jié)束時才被刪除。253.5數(shù)據(jù)類型C#數(shù)據(jù)類型有值類型和引用類型兩種。值類型的變量直接包含它們的數(shù)據(jù),而引用類型存儲對它們的數(shù)據(jù)的引用。對于值類型,一個變量的操作不會影響另一個變量;而對于引用類型,兩個變量可能引用同一個對象,因此對一個變量的操作可能會影響到另一個變量。263.5.1值類型簡單類型:整數(shù)類型、布爾類型、字符類型和實(shí)數(shù)類型。結(jié)構(gòu)類型枚舉類型27布爾類型布爾類型表示“真”和“假”,用“true”和“false”表示。注意:布爾類型不能用整數(shù)類型代替,如數(shù)字0不能代替false。28字符類型字符類型采用Unicode字符集標(biāo)準(zhǔn),一個字符長度為16位。字符類型的賦值形式:charx1='A';//一般方式,值為字符Acharx2='中';//值為漢字“中”charx3='\x0041';//十六進(jìn)制方式charx4='\u0041';//Unicode方式charx5='\'';//轉(zhuǎn)義符方式注意:char類型變量聲明時必須包含在一對單引號中。29常用轉(zhuǎn)義符對應(yīng)表轉(zhuǎn)義符對應(yīng)字符轉(zhuǎn)義符對應(yīng)字符\'單引號\a感嘆號\"雙引號\n換行\(zhòng)\反斜杠\r回車\0空字符\b退格30實(shí)數(shù)類型單精度float類型:常用于科學(xué)計(jì)算雙精度double類型:常用于科學(xué)計(jì)算十進(jìn)制decimal類型:常用于金融計(jì)算注意:float類型必須在數(shù)據(jù)后添加“F”或“f”,decimal類型必須添加“M”或“m”,否那么編譯器以double類型處理。31結(jié)構(gòu)類型publicstructStudentInfo{ publicstringName; publicstringphone; publicstringAddress;}StudentInfostStudent;//stStudent為一個StudentInfo結(jié)構(gòu)類型變量32枚舉類型枚舉類型是由一組命名常量組成的類型,使用enum關(guān)鍵字聲明。枚舉中每個元素默認(rèn)是整數(shù)類型,且第一個值為0,后面每個連續(xù)的元素依次加1遞增。假設(shè)要改變默認(rèn)起始值0,可以通過直接給第一個元素賦值的方法。枚舉類型的變量在某一時刻只能取枚舉中某一元素的值。33實(shí)例3-1枚舉類型變量應(yīng)用本實(shí)例首先定義枚舉類型Color,再聲明enTest枚舉變量,最后以兩種形式輸出enTest值。源程序:enum.aspx343.5.2引用類型class類型接口類型數(shù)組類型委托類型35object類型作為class類型之一的object類型,實(shí)質(zhì)是System.Object類的別名??梢詫⑷魏晤愋偷臄?shù)據(jù)轉(zhuǎn)化為object類型。36string類型實(shí)質(zhì)是一種數(shù)組,即字符串可看作是一個字符數(shù)組。在聲明時要求放在一對雙引號之間。兩種包含轉(zhuǎn)義符的字符串形式stringstrPath="c:\\ASP\\default.aspx";stringstrPath=@"c:\ASP\default.aspx";[]運(yùn)算符可訪問字符串中各個字符,如: stringstrTest="abcdefg"; charx=strTest[2];//x的值為'c'

37string類型〔續(xù)〕通過ToString()轉(zhuǎn)化為string類型 stringstrInt=23.ToString();使用Parse()方法或Convert類的相應(yīng)方法轉(zhuǎn)化為其它類型

intiString=Int32.Parse("1234"); stringstrDatetime=Convert.ToString(DateTime.Now);

38接口類型接口常用來描述組件對外能提供的效勞。接口中不能定義數(shù)據(jù),只能定義方法、屬性、事件等。包含在接口中的方法不定義具體實(shí)現(xiàn),而是在接口的繼承類中實(shí)現(xiàn)。39數(shù)組類型數(shù)組是一組數(shù)據(jù)類型相同的元素集合。要訪問數(shù)組中的元素時,可以通過“數(shù)組名[下標(biāo)]”形式獲取,其中下標(biāo)編號從0開始。數(shù)組可以是一維的,也可以是多維的。 string[]s1; int[]s2=newint[]{1,2,3}; int[,]s3=newint[,]{{1,2},{4,5}};40委托類型委托是一種平安地封裝方法的類型,類似于C和C++中的函數(shù)指針。與C中的函數(shù)指針不同,委托是類型平安的。通過委托可以將方法作為參數(shù)或變量使用。413.5.3裝箱和拆箱裝箱和拆箱是實(shí)現(xiàn)值類型和引用類型相互轉(zhuǎn)換的橋梁。裝箱的核心是把值類型轉(zhuǎn)化為對象類型,也就是創(chuàng)立一個對象并把值賦給對象。 inti=100; objectobjNum=i;//裝箱423.5.3裝箱和拆箱〔續(xù)〕拆箱的核心是把對象類型轉(zhuǎn)換為值類型,即把值從對象實(shí)例中復(fù)制出來。 inti=100; objectobjNum=i;//裝箱 intj=(int)objNum;//拆箱433.6運(yùn)算符請參考教材中的表3-7443.7流程控制選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)453.7.1選擇結(jié)構(gòu)If語句注意:條件表達(dá)式在判斷是否相等時一定要用“==”。switch語句注意:每一個case塊的結(jié)束必須有break結(jié)束語句或goto跳轉(zhuǎn)語句。46實(shí)例3-2switch語句應(yīng)用本實(shí)例根據(jù)今天是星期幾在頁面上輸出相應(yīng)信息。源程序:switch.aspx473.7.2循環(huán)結(jié)構(gòu)while語句 根據(jù)條件表達(dá)式的值,執(zhí)行0次或?qū)掖窝h(huán)體。48實(shí)例3-3while語句應(yīng)用本實(shí)例在頁面上的TextBox中輸入一個值n,單擊Button按鈕后計(jì)算“S=1+3+…+n”,并在一個Label控件中輸出值。源程序:while.aspx493.7.2循環(huán)結(jié)構(gòu)〔續(xù)〕do-while循環(huán)注意:與while語句不同,do-while循環(huán)體內(nèi)語句序列會在計(jì)算條件表達(dá)式之前執(zhí)行一次。for語句for語句較適用于循環(huán)次數(shù)的循環(huán),循環(huán)體中語句可能執(zhí)行0次或?qū)掖?。注意:?dāng)使用for(;;)形式時表示死循環(huán),需要break語句跳出。50實(shí)例3-4for語句應(yīng)用本實(shí)例利用for語句在網(wǎng)頁上輸出三角形。源程序:for.aspx513.7.2循環(huán)結(jié)構(gòu)〔續(xù)〕foreach語句foreach語句常用于枚舉數(shù)組、集合中每個元素,并針對每個元素執(zhí)行循環(huán)體內(nèi)語句序列。foreach語句不能改變集合中各元素的值。foreach(數(shù)據(jù)類型循環(huán)變量in集合) { //語句序列 }52實(shí)例3-5foreach語句應(yīng)用本實(shí)例先給數(shù)組賦值,再逐個輸出數(shù)組元素。源程序:foreach.aspx533.7.3異常處理異常的產(chǎn)生常由于激發(fā)了某個異常的條件,使得操作無法正常進(jìn)行,如算術(shù)運(yùn)算中的除零操作、內(nèi)存缺乏、數(shù)組索引越界等。異常處理能使程序更加健壯,容易讓程序員對捕獲的錯誤進(jìn)行處理。異常處理常使用兩種形式:throw語句和try…catch…finally結(jié)構(gòu)。54throw語句throw語句用于拋出異常錯誤信息。

55實(shí)例3-6throw語句應(yīng)用本實(shí)例當(dāng)除零操作時,拋出“除數(shù)不能為零!”的錯誤信息。源程序:throw.aspx程序說明:

本實(shí)例主要為了說明throw語句的應(yīng)用。在實(shí)際工程中,變量值應(yīng)來源于某個輸入控件,直接賦值毫無意義。56try…catch…finally結(jié)構(gòu)異常捕獲由try塊完成,處理異常的代碼放在catch塊,而在finally塊中的代碼不管是否有異常發(fā)生總會被執(zhí)行。catch塊可多個,而finally塊不是必需的。在實(shí)際應(yīng)用中,finally常完成一些善后工作,如數(shù)據(jù)庫操作中的數(shù)據(jù)庫關(guān)閉等。57try…catch…finally結(jié)構(gòu)〔續(xù)〕try{ //可能出錯的語句序列}catch(異常聲明1){ //捕獲異常后執(zhí)行的語句序列}catch(異常聲明2){}…finally{ //總是執(zhí)行的語句塊}

58實(shí)例3-7try…catch…finally結(jié)構(gòu)應(yīng)用未包含try…catch…finally結(jié)構(gòu),瀏覽exceptionNo.aspx時因?yàn)檎也坏健癊:\ASP.NET\MyPet.mdf”數(shù)據(jù)庫而給出系統(tǒng)報(bào)錯信息。中包含了try…catch…finally結(jié)構(gòu),當(dāng)try塊執(zhí)行出錯時將執(zhí)行catch塊,瀏覽exception.aspx時顯示系統(tǒng)錯誤信息和開發(fā)人員定義的出錯信息。源程序:exceptionNo.aspx源程序:exception.aspx593.8自定義ASP.NET類ASP.NET3.5是完全面向?qū)ο蟮?,任何對象都由類生成,而自定義類能進(jìn)一步擴(kuò)展功能。603.8.1類的常識在考慮實(shí)現(xiàn)ASP.NET3.5網(wǎng)站功能時要盡量從類的角度去實(shí)現(xiàn)。類具有封裝性、繼承性和多態(tài)性的特點(diǎn)。與ASP.NET3.5頁面對應(yīng)的類包含在.aspx.cs文件中。自定義的類應(yīng)該放在App_Code文件夾下,VisualStudio2008會自動編譯該文件夾中包含的類,并且在使用這些類時能得Intellisense的支持。613.8.1類的常識〔續(xù)〕類創(chuàng)立完后,使用new關(guān)鍵字可建立類的實(shí)例對象。類的常用修飾符主要有訪問修飾符、abstract、static、partial、sealed。623.8.1類的常識〔續(xù)〕abstract修飾符表示該類只能是其他類的基類,又稱為抽象類,對這種類中的成員必須通過繼承來實(shí)現(xiàn)。static修飾符表示該類為靜態(tài)類,這種類在使用時不能使用new創(chuàng)立類的實(shí)例,但能夠直接訪問數(shù)據(jù)和方法。633.8.1類的常識〔續(xù)〕partial修飾符可以將類的定義拆分到兩個或多個源文件中。每個源文件包含定義的一局部,當(dāng)編譯應(yīng)用程序時.NETFramework會將所有局部組合起來形成一個類。sealed修飾符表示該類為密封類,意味著該類不能被繼承。643.8.2屬性可以獲取或改變類中私有字段的內(nèi)容,這種方式充分地表達(dá)了封裝性,即不直接操作類的數(shù)據(jù)內(nèi)容,而是通過訪問器進(jìn)行訪問。訪問器有g(shù)et訪問器和set訪問器,分別用于獲取和設(shè)置屬性值。當(dāng)僅包含get訪問器時,表示該屬性是只讀的。65實(shí)例3-8類Account的屬性定義本實(shí)例描述類Account中的三個屬性:帳戶編號〔ID〕、帳戶所有者〔Name〕、帳戶余額〔Balance〕。源程序:Account.cs663.8.3構(gòu)造函數(shù)當(dāng)使用new關(guān)鍵字實(shí)例化一個對象時,將調(diào)用對象的構(gòu)造函數(shù),所以說,在使用一個類時,最先執(zhí)行的語句就是構(gòu)造函數(shù)中的語句。每個類都有構(gòu)造函數(shù),如果沒有定義構(gòu)造函數(shù),編譯器會自動提供一個默認(rèn)的構(gòu)造函數(shù)。注意:構(gòu)造函數(shù)名與類名相同且總是public類型。67實(shí)例3-9類Accout中構(gòu)造函數(shù)定義在銀行帳戶類Accout中,需要構(gòu)建一個對應(yīng)的構(gòu)造函數(shù)。源程序:Account.cs程序說明:如建立對象時使用 Accountaccount=newAccount("324001","李明",140); 這表示"324001"值傳給屬性ID,再通過set訪問器設(shè)置_ID的值為"324001"。類似地,另兩個參數(shù)值"李明"和140也分別傳遞給對象中的_Name和_Balance。683.8.4方法方法反映了對象的行為。方法的常用修飾符有訪問修飾符、void等。void指定方法不返回值。69實(shí)例3-10類Account中存款和取款方法定義存款方法先檢查需存款的金額是否大于0,假設(shè)大于0那么將原帳戶余額與存款金額相加保存為新的存款金額,否那么拋出異常信息。取款方法先檢查取款金額是否小于原帳戶余額,假設(shè)是那么將原帳戶余額減去取款

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論