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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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

提交評論