aspnetweb程序設(shè)計(jì)第二章-C_第1頁
aspnetweb程序設(shè)計(jì)第二章-C_第2頁
aspnetweb程序設(shè)計(jì)第二章-C_第3頁
aspnetweb程序設(shè)計(jì)第二章-C_第4頁
aspnetweb程序設(shè)計(jì)第二章-C_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章C#根底知識(shí)知識(shí)點(diǎn)C#數(shù)據(jù)類型C#語法2.1C#設(shè)計(jì)理念自動(dòng)資源回收機(jī)制 C#具有自動(dòng)資源回收〔Automaticgarbagecollection〕機(jī)制,自動(dòng)將不再被使用的內(nèi)存回收,并交給操作系統(tǒng)重新配置。因此使用C#編寫的程序不會(huì)出現(xiàn)內(nèi)存泄漏〔MemoryLeak〕的現(xiàn)象。例外錯(cuò)誤處理機(jī)制 C#結(jié)構(gòu)化的例外錯(cuò)誤處理提供一致性的錯(cuò)誤處理機(jī)制。2.2面向?qū)ο蟪绦蝾愔饕扇植拷M成:屬性:屬性存儲(chǔ)對(duì)象的信息。主要用來改進(jìn)public成員變量的存取,讓用戶能夠在外部組件存取內(nèi)部數(shù)據(jù)時(shí),多提供一層邏輯判斷。方法:提供給外部可訪問的接口函數(shù),使之可以利用對(duì)象執(zhí)行某種操作。事件:事件能夠告知應(yīng)用程序〔請(qǐng)指明是告知××〕發(fā)生了什么事情。C#有內(nèi)置的語法和保存字可用來定義與處理事件,可以動(dòng)態(tài)的鏈接和刪除事件處理函數(shù)。此外,一個(gè)事件可以鏈接幾個(gè)事件處理函數(shù),而一個(gè)事件處理還屬能夠同時(shí)處理多個(gè)事件。2.3C#數(shù)據(jù)類型在C#中主要有兩大類數(shù)據(jù)類型:值類型引用類型2.3.1值類型值類型包括:簡(jiǎn)單類型枚舉類型結(jié)構(gòu)類型值類型的分類值類型簡(jiǎn)單類型整型sbyte;byte;short;ushort;int;uint;long;ulong;char浮點(diǎn)類型float;double小數(shù)類型decimal布爾類型bool字符型char枚舉類型enum結(jié)構(gòu)類型簡(jiǎn)單類型整型C#中支持九種整型:sbyte、byte、short、ushort、int、uint、long、ulong和char。類型含義數(shù)值范圍sbyte有符號(hào)的8位整數(shù)-128~127byte無符號(hào)的8位整數(shù)0~255short有符號(hào)的16位整數(shù)-32768~32767ushort無符號(hào)的16位整數(shù)0~32767int有符號(hào)的32位整數(shù)-2147483648~2147483648uint無符號(hào)的32位整數(shù)0~4294967295long有符號(hào)的64位整數(shù)-9223372036854775808~9223372036854775808ulong無符號(hào)的64位整數(shù)0~18446744073709551615char無符號(hào)的16位整數(shù)0~65535字符型字符型,也就是char類型,是一種特殊類型的整型,這是因?yàn)閏har類型與其他整數(shù)類型相比有以下兩點(diǎn)不同之處:字符型實(shí)際是單個(gè)的Unicode類型,字長(zhǎng)為16bits,可以通過三種方式為其賦值:charchrTmp=“A”;charchrTmp=“\x0065”;十六進(jìn)制charchrTmp=“\u0065;unicode表示法字符型無法隱式地轉(zhuǎn)換成其它任何類型。例如對(duì)于sbyte,byte和ushort這樣能完全使用char類型代表其值的類型,隱式轉(zhuǎn)換也不存在。但C#中支持顯式轉(zhuǎn)換char型,如:charchrTmp=(char)100;bytebtTmp=(byte)’A’;字符型中有以下轉(zhuǎn)義符,見表。轉(zhuǎn)移符含義\‘表示單引號(hào)\”表示雙引號(hào)\\表示反斜杠\0表示空字符\a表示感嘆號(hào)\b表示退格\f表示換頁\n表示換行\(zhòng)r表示回車\t表示水平tab\v表示垂直tab浮點(diǎn)型類型取值范圍說明float1.5*10?-45~3.4*10?38單精度浮點(diǎn)數(shù),精確到小數(shù)點(diǎn)后面7位double5.0*10?-324~1.7*10?308雙精度浮點(diǎn)數(shù),精確到小數(shù)點(diǎn)后面15位或16位如果二元操作中的其中一個(gè)操作數(shù)為浮點(diǎn)類型,那么另外一個(gè)操作數(shù)是整型或浮點(diǎn)類型,運(yùn)算規(guī)那么如下:如果一操作數(shù)是整型,那么該操作數(shù)被轉(zhuǎn)換為另一操作數(shù)的浮點(diǎn)數(shù)類型;如果一操作數(shù)為double類型,那么另一操作數(shù)被轉(zhuǎn)換成double類型,運(yùn)算以double類型的精度和取值范圍進(jìn)行,并且所得結(jié)果也為double類型;其它情況下,運(yùn)算至少將以float類型的取值范圍和精度進(jìn)行,并且所得結(jié)果也為float型。小數(shù)類型小數(shù)類型數(shù)值范圍從1.0*10?-28~7.9*10?28,精確到小數(shù)點(diǎn)后面28位。對(duì)于小數(shù)類型的運(yùn)算規(guī)那么如下:如果一操作數(shù)是小數(shù)類型,另一操作數(shù)是整型或小數(shù)類型,那么整型在運(yùn)算前被轉(zhuǎn)化為小數(shù)類型參與運(yùn)算。如果一個(gè)小數(shù)類型的算術(shù)運(yùn)算產(chǎn)生了一個(gè)對(duì)于小數(shù)類型的格式來說太小的值,運(yùn)算結(jié)果將會(huì)變成0。如果一個(gè)小數(shù)類型的算術(shù)運(yùn)算產(chǎn)生了一個(gè)對(duì)于小數(shù)類型的格式來說太大的值,就會(huì)觸發(fā)溢出錯(cuò)誤。布爾型布爾型僅有true或false兩個(gè)值,分別代表邏輯真和邏輯假。沒有標(biāo)準(zhǔn)能實(shí)現(xiàn)布爾類型和其他類型的轉(zhuǎn)換。枚舉類型枚舉類型是由一組特定的常量構(gòu)成一種數(shù)據(jù)結(jié)構(gòu)。所使用的類型只能是long、int、short、byte。默認(rèn)類型是int。默認(rèn)第一個(gè)元素的值是0,每一個(gè)連續(xù)的元素按1遞增。也可以給元素直接賦值。結(jié)構(gòu)類型使用結(jié)構(gòu)的主要目的是創(chuàng)立小型的類,可以用來申明構(gòu)造函數(shù)、常熟、字段、方法、屬性、索引、操作符和嵌套類型。各種數(shù)據(jù)類型的默認(rèn)值類型默認(rèn)值sbyte、byte、short、ushort、int、uint、long、ulong0char‘\x0000’float0.0Fdouble0.0Ddecimal0.0Mboolfalse枚舉類型0結(jié)構(gòu)類型把所有值類型的域都設(shè)置為它們各自的默認(rèn)值,把所有的引用類型的域賦為空2.3.2引用類型引用類型包括:類類型接口類型代表類型數(shù)組類型類類型〔class〕類類型定義了一種數(shù)據(jù)結(jié)構(gòu),這個(gè)數(shù)據(jù)結(jié)構(gòu)中包含了數(shù)據(jù)成員包含數(shù)據(jù)、屬性和事件等;函數(shù)成員包含方法、索引、操作符、構(gòu)造函數(shù)和析構(gòu)函數(shù);以及嵌套類,并支持繼承。在類中定義的數(shù)據(jù)成員、函數(shù)成員等局部可以被外部調(diào)用,但局部不能被外部存取,這是由所使用的成員存取修改器來決定的。在C#中由public、private、protected和internal式中存取修改器。Public:表示任何外部的類都可以不受限制的存取類。Private:表示只限定此類內(nèi)部使用。Protected:表示除了讓本身的類使用外,任何繼承自此類的子類也可以存取。Internal:僅存在于C#中,表示在同一個(gè)應(yīng)用程序或庫中的所有類都可以存取。對(duì)象類型〔object〕對(duì)象類型是其他所有類型的根底類型。在C#中每一種類型都直接或間接的繼承自System.Object。字符串類型〔string〕與C++相比,C#增強(qiáng)了對(duì)字符串的各種操作。字符串類型是直接從System.Object中繼承而來的密封類,而且是final類,不能從它再派生類。String類型的值可以寫成字符串文字的形式。賦值方式如下:stringstrTmp=“thisisabook.”;接口類型〔interface〕接口與類的最大差異在于一個(gè)接口聲明一個(gè)只有抽象成員的引用類型,接口僅僅存在方法標(biāo)志,但沒有執(zhí)行代碼。當(dāng)定義一個(gè)類時(shí),如果類從接口派生,可以派生自多重接口;但是如果類從類派生,就只能從一個(gè)類派生。聲明方法如例:interfaceinterfaceTmp{voidfunction1();}代表元類型〔delegate〕代表元類型其實(shí)就是面向?qū)ο蟮暮瘮?shù)指針。因?yàn)樵贑#中沒有指針,所有的東西都是對(duì)象,那么為了能在C#中提供C++中原有的函數(shù)指針功能,特提供了代表元類型,它是一種靜態(tài)的方法或者對(duì)象實(shí)例,引用該對(duì)象的實(shí)例方法。C/C++中的指針只能訪問靜態(tài)的函數(shù),代表元既能訪問靜態(tài)的方法,也能訪問實(shí)例的方法。假設(shè)要使用代表元類型,需進(jìn)行如下幾個(gè)步驟:首先,定義delegate類型的函數(shù)簽名,語法如下例所示:publicdelegatestringFunPointer(stringstrTmp);delegate是一個(gè)保存字,聲明了一個(gè)函數(shù)的指針類型。其次,定義與delegate類型函數(shù)簽名相同的函數(shù),如:publicstaticstringFun1(stringstrTmp){ return“hello”+strTmp;}只要傳入?yún)?shù)的類型、個(gè)數(shù)、順序和delegate類型的函數(shù)相同,那么參數(shù)名稱可以是不同的。然后,定義接收delegate類型參數(shù)的處理函數(shù),如:publicstaticvoidMethod(FunPointerFunPointer1){ Console.WriteLine(FunPointer1(“Mary”));}最后,將上面的程序代碼鏈接起來運(yùn)行:FunPointerfp1=newFunPointer(Fun1);可以直接調(diào)用Method函數(shù),并傳入FunPointer變量當(dāng)作傳入?yún)?shù),如:Method(fp1);數(shù)組類型〔Array〕數(shù)組類型繼承自System.Array,而System.Array繼承自System.Object。數(shù)組是包含一串相同類型的類型數(shù)據(jù)的集合,每個(gè)數(shù)組變量稱作數(shù)組元素,這種類型也稱作數(shù)組元素類型。數(shù)組的元素類型可以是任何類型,包括數(shù)組類型。所有數(shù)組的元素值通過數(shù)組名和下標(biāo)來訪問,數(shù)組的位數(shù)決定了相關(guān)數(shù)組元素的下標(biāo)數(shù),只有一個(gè)下標(biāo)的數(shù)組稱為一維數(shù)組,多于一個(gè)下標(biāo)的數(shù)組稱為多維數(shù)組。聲明多維數(shù)組的方式如下:int[]a; //int型的一維數(shù)組int[,]a; //int型的二維數(shù)組int[,,]a; //int型的三維數(shù)組int[][]a; //int型的數(shù)組的數(shù)組int[][][]a; //int型的數(shù)組的數(shù)組的數(shù)組2.4C#語法C#語句具有如下幾個(gè)特點(diǎn):C#是區(qū)別大小。每一句都以分號(hào)結(jié)束。多個(gè)語句通過分號(hào)可以寫在一行,不過不推薦,因?yàn)椴磺逦?。聲明變量在C#中聲明變量時(shí),要注意以下幾點(diǎn):變量的名稱需以文字或下劃線“_”開始。變量中不能使用空格。不能使用保存字,如char,int等。聲明變量的語法是:變量類型變量名稱[=初始值]。2.4.2C#根本語法運(yùn)算符算術(shù)運(yùn)算符+---------------------加----------------------減*---------------------乘/---------------------除%---------------------求余(即整除后的余數(shù))邏輯運(yùn)算符&---------------------按位與|---------------------按位或^---------------------按位異或~---------------------取反>>n-------------------右移n位<<n-------------------左移n位遞增遞減運(yùn)算符++或--或+=或-=或*=或/=比較運(yùn)算符>或<或==或!=或>=或<=條件判斷if語句格式:if(布爾表達(dá)式)嵌入語句[else嵌入語句]例如:if(a>0){ a=-1;}else{ Console.WriteLine(a);}switch語句格式:switch〔表達(dá)式〕{case常量表達(dá)式:嵌入語句[default:嵌入語句]}switch用于多個(gè)可能的值,如果有一個(gè)匹配,那么執(zhí)行相應(yīng)代碼,每句之后必須有break語句中斷后面語句的執(zhí)行。例如:switch(a){ case1: Console.WriteLine("1"); break; case2: Console.WriteLine("2"); break; case3: Console.WriteLine("3"); break; default: Console.WriteLine("default");}循環(huán)語句while循環(huán)格式:while(布爾表達(dá)式)嵌入語句例如:inta=1;while(a<20){ a+=a;}do-while循環(huán)格式:do嵌入語句while(布爾表達(dá)式)例如:inta=1;do{ a+=a;}while(a<20);dowhile循環(huán)與while循環(huán)類似,區(qū)別在于do-while循環(huán)至少執(zhí)行一次循環(huán)體。for循環(huán)格式:for〔[初始化];[布爾表達(dá)式];[重復(fù)語句]〕嵌入語句例如:intj=1;for(inti=0;i<100;i++){ j++; Console.WriteLine("i="+i+"j="+j);}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論