版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C#程序設(shè)計(jì)基礎(chǔ)主要內(nèi)容C#語言特點(diǎn)數(shù)據(jù)類型變量與常量運(yùn)算符與表達(dá)式流程控制語句程序的結(jié)構(gòu)異常處理C#的特點(diǎn)語法簡潔徹底的面向?qū)ο笤O(shè)計(jì)安全機(jī)制功能強(qiáng),代碼工作量小數(shù)據(jù)類型值類型:該類型的數(shù)據(jù)長度固定,存放于棧內(nèi);引用類型:該類型的數(shù)據(jù)長度可變,存放于堆內(nèi)所有數(shù)據(jù)類型都是一個類,具有格式化、類型轉(zhuǎn)換等功能。
值類型
(整形)數(shù)據(jù)類型簡單值類型整數(shù)類型7inti1=-10;uinti2=10;longl1=-1000;ulongl2=1000;shorts1=-300;ushorts2=300;sbyteb1=-5;sbyteb2=0;值類型(字符型)③ 字符型字符包括數(shù)字字符、英文字母、表達(dá)符號等,C#提供的字符按照國際公認(rèn)的標(biāo)準(zhǔn),采用Unicode字符集。一個Unicode的標(biāo)準(zhǔn)字符長度為16位。C#中也存在轉(zhuǎn)義字符,用來在程序中指代特殊的控制字符。C#中使用的轉(zhuǎn)義字符如表A.2所示。簡單值類型整數(shù)類型字符類型
數(shù)據(jù)類型9charch1='a';charch2='\\';charch1='abc';charch2="\\";值類型(實(shí)型)② 實(shí)型實(shí)型數(shù)據(jù)分為浮點(diǎn)型和十進(jìn)制類型。數(shù)學(xué)中的小數(shù)在C#中采用兩種數(shù)據(jù)類型來表示:單精度(float)和雙精度(double)。它們的取值范圍和精度如下。單精度:取值范圍為±1.5×10-45~±3.4×1038,精度為7位數(shù)。雙精度:取值范圍為±5.0×10-324~±1.7×10308,精度為15到16位數(shù)。十進(jìn)制類型(decimal)是C#專門提供的一種類型,主要用于金融和貨幣方面的計(jì)算。該類型是一種高精度、128位數(shù)據(jù)類型,運(yùn)算結(jié)果準(zhǔn)確到小數(shù)點(diǎn)后28位。當(dāng)定義一個decimal變量并賦值給它時,使用m下標(biāo)以表明它是一個十進(jìn)制類型,例如,decimaldx=1.0m;。doublex=1.2;floaty=0.5F;decimalz=3.2M;簡單值類型整數(shù)類型字符類型
實(shí)數(shù)類型布爾類型
數(shù)據(jù)類型11boolb1=true;boolb2=false;值類型(結(jié)構(gòu)類型)結(jié)構(gòu)類型是指把各種不同類型數(shù)據(jù)信息組合在一起形成的類型。結(jié)構(gòu)類型的變量采用struct來聲明,例如,可以定義學(xué)生成績表記錄結(jié)構(gòu)如下:structStudent{publicstringnumber;publicstringname;publicintscore;}Studentstu1;stu1就是一個Student結(jié)構(gòu)類型的變量。對結(jié)構(gòu)成員的訪問通過結(jié)構(gòu)變量名加上訪問符“.”號,再跟成員名,如="Jacky";。結(jié)構(gòu)類型包含的成員類型沒有限制,結(jié)構(gòu)類型的成員還可以是結(jié)構(gòu)類型。與類的區(qū)別:占用??臻g,效率高;自動釋放內(nèi)存;容易復(fù)制。值類型(枚舉類型)枚舉實(shí)際上是為一組在邏輯上密不可分的整數(shù)值提供便于記憶的符號。例如,聲明一個代表顏色的枚舉類型的變量:enumColor{red,yellow,blue,green,black,white};Colorcol;枚舉類型的變量在某一時刻只能取枚舉中某一個元素的值例如,col這個表示顏色的枚舉類型變量,在某一時刻只能為枚舉中的一種顏色(0-紅色2-黃色…….
ColoryourCol; yourCol=Color.red;等價于yourCol=0;枚舉中的每一個元素類型都是int型,第一個元素的值為0,其后每一個連續(xù)的元素依次加1遞增。也可以給元素直接賦值,如把red的值設(shè)為1,其后的元素的值分別為2,3,…。enumColor{red=1,yellow,blue,green,black,white};為枚舉元素所賦的值的類型限于long、int、short和byte等整數(shù)類型。引用類型C#中的另一大數(shù)據(jù)類型為引用類型,引用類型與值類型的區(qū)別在于:引用類型變量不直接存儲所包含的值,存儲引用地址C#中的引用類型有4種:類、數(shù)組、委托和接口。1.類 類是面向?qū)ο缶幊痰幕締挝?。“類”是一種構(gòu)造,通過使用該構(gòu)造,您可以將其他類型的變量、方法和事件組合在一起,從而創(chuàng)建自己的自定義類型。類的數(shù)據(jù)成員有常量、字段和事件。類支持繼承機(jī)制如果類沒有聲明為靜態(tài)類,客戶端代碼就可以創(chuàng)建賦給變量的“對象”或“實(shí)例”,如果類聲明為
靜態(tài)類,則內(nèi)存中只存在一個副本,并且客戶端代碼只能通過該類自身而不是“實(shí)例變量”訪問該類類的定義類是C#中功能最強(qiáng)大的數(shù)據(jù)類型,在C#中使用關(guān)鍵詞
class
來定義類。聲明類 publicclassAnimal { //類主體,用以定義數(shù)據(jù)和行為 }創(chuàng)建對象:使用關(guān)鍵詞new
來創(chuàng)建對象。 Animalanimal=newAminal();Aminal()是類的默認(rèn)構(gòu)造函數(shù),將在后面介紹。newAminal()創(chuàng)建了對象,并將引用地址返回給Animal類型的變量animal。animal并不包含實(shí)例的數(shù)據(jù),只是一個引用(地址),因?yàn)轭愂且妙愋汀?shù)據(jù)類型類的聲明與實(shí)例化17classComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;數(shù)據(jù)類型類:引用類型18classComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;c1a:2.5b:5數(shù)據(jù)類型類:引用類型19classComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;ComplexNumberc2=c1;c1a:2.5b:5c2數(shù)據(jù)類型類:引用類型20classComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;ComplexNumberc2=c1;c2.b=10;c1a:2.5b:10c2數(shù)據(jù)類型類:引用類型結(jié)構(gòu):值類型21structComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;c1a:2.5b:5數(shù)據(jù)類型類:引用類型結(jié)構(gòu):值類型22structComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;ComplexNumberc2=c1;c1a:2.5b:5c2a:2.5b:5數(shù)據(jù)類型類:引用類型結(jié)構(gòu):值類型23structComplexNumber{publicdoublea;publicdoubleb;}ComplexNumberc1=newComplexNumber();c1.a=2.5;c1.b=5;ComplexNumberc2=c1;c2.b=10;c1a:2.5b:5c2a:2.5b:10Msdn示例 struct類型適于表示Point、Rectangle和Color等輕量對象。盡管使用自動實(shí)現(xiàn)的屬性將一個點(diǎn)表示為類同樣方便,但在某些情況下使用結(jié)構(gòu)更加有效。例如,如果聲明一個1000個Point對象組成的數(shù)組,為了引用每個對象,則需分配更多內(nèi)存;這種情況下,使用結(jié)構(gòu)可以節(jié)約資源publicstructCoOrds{ publicintx,y; publicCoOrds(intp1,intp2){ x=p1; y=p2; }}//Declareandinitializestructobjects.classTestCoOrds{ staticvoidMain() { //Initialize: CoOrdscoords1=newCoOrds(); CoOrdscoords2=newCoOrds(10,10); //Displayresults: Console.Write("CoOrds1:"); Console.WriteLine("x={0},y={1}",coords1.x,coords1.y); Console.Write("CoOrds2:"); Console.WriteLine("x={0},y={1}",coords2.x,coords2.y); //Keeptheconsolewindowopenindebugmode. Console.WriteLine("Pressanykeytoexit."); Console.ReadKey(); }}/* Output:CoOrds1:x=0,y=0 CoOrds2:x=10,y=10 */成員概述成員訪問限制private私有27classStudent{privatestringname;privatevoidWrite(){Console.WriteLine(name);}}Students1=newStudent();Console.WriteLine();s1.Write();成員概述成員訪問限制private私有public公有28classStudent{publicstringname;publicvoidWrite(){Console.WriteLine(name);}}Students1=newStudent();Console.WriteLine();s1.Write();成員概述成員訪問限制private私有public公有protected保護(hù)29classStudent{protectedstringname;protectedvoidWrite(){Console.WriteLine(name);}}classGraduate:Student{publicvoidOutput(){Console.WriteLine(name);Write();}}成員概述成員訪問限制private私有public公有protected保護(hù)internal內(nèi)部
30namespaceAsm1{internalclassStudent{}}namespaceAsm2{classLibrary{publicvoidGet(){Asm1.Students1=newAsm1.Student();}}}成員概述成員訪問限制private私有public公有protected保護(hù)internal內(nèi)部
31namespaceAsm1{publicclassStudent{}}namespaceAsm2{classLibrary{publicvoidGet(){Asm1.Students1=newAsm1.Student();}}}成員概述靜態(tài)成員與非靜態(tài)成員實(shí)例成員(非靜態(tài))
32classStudent{publicstringname;}Students1=newStudent();Console.WriteLine();成員概述靜態(tài)成員與非靜態(tài)成員實(shí)例成員(非靜態(tài))
靜態(tài)成員
33classStudent{publicstringname;publicstaticstringschool;}Students1=newStudent();Console.WriteLine();Console.WriteLine(Student.school);成員概述靜態(tài)成員與非靜態(tài)成員實(shí)例成員(非靜態(tài))
靜態(tài)成員
34classStudent{publicstringname;publicstaticstringschool;publicstaticvoidWrite(){Console.WriteLine(name);}}成員概述字段一般字段
35publicclassCircle{publicdoubler;}Circlec1=newCircle();Console.WriteLine(c1.r);c1.r=10;成員概述字段一般字段常量字段
36publicclassCircle{publicdoubler;publicconstdoublePI=3.14;}Circlec1=newCircle();Console.WriteLine(c1.r);c1.r=10;Console.WriteLine(Circle.PI);Circle.PI=3.1416;成員概述字段一般字段常量字段只讀字段
37publicclassCircle{publicdoubler;publicreadonlydoublePI=3.14;}Circlec1=newCircle();Console.WriteLine(c1.r);c1.r=10;Console.WriteLine(c1.PI);c1.PI=3.1416;方法38方法聲明
publicintMax(intx,inty){returnx>=y?x:y;}返回類型方法名參數(shù)列表執(zhí)行體方法參數(shù)類型值傳遞39publicvoidSx,inty){intz=x;x=y;y=z;}inta=10;intb=20;Swap(a,b);a:10b:20x:10y:20方法參數(shù)類型值傳遞40publicvoidSx,inty){intz=x;x=y;y=z;}inta=10;intb=20;Swap(a,b);a:10b:20x:20y:10方法參數(shù)類型值傳遞引用傳遞41publicvoidSintx,refinty){intz=x;x=y;y=z;}inta=10;intb=20;Swap(a,b);a:10b:20xy方法參數(shù)類型值傳遞引用傳遞42publicvoidSintx,refinty){intz=x;x=y;y=z;}inta=10;intb=20;Swap(a,b);a:20b:10xy方法參數(shù)類型值傳遞引用傳遞輸出型參數(shù)43publicintSumProd(intx,inty,outinta){a=x*y;returnx+y;}方法參數(shù)類型值傳遞引用傳遞輸出型參數(shù)數(shù)組型參數(shù)44publicintSum(paramsint[]x){ints=0;for(inti=0;i<x.Length;i++)s+=x[i];returns;}int[]x={1,3,5,7,9};ints1=Sum(x);ints2=Sum(2,4,6,8,10);類的特殊方法構(gòu)造函數(shù)
45publicclassStudent{publicintage=18;}Students1=newStudent();s1.age=20;類的特殊方法構(gòu)造函數(shù)無參構(gòu)造函數(shù)
46publicclassStudent{publicintage;publicStudent(){age=18;}}Students1=newStudent();s1.age=20;類的特殊方法構(gòu)造函數(shù)無參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)
47publicclassStudent{publicintage;publicStudent(inti){age=i;}}Students1=newStudent(20);類的特殊方法構(gòu)造函數(shù)無參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)
48publicclassStudent{publicintage;publicstaticstringschool;staticStudent(){school="華中理工大學(xué)";}}類的特殊方法構(gòu)造函數(shù)無參構(gòu)造函數(shù)帶參構(gòu)造函數(shù)靜態(tài)構(gòu)造函數(shù)析構(gòu)函數(shù)
49publicclassStudent{publicstringname;~Student(){Console.Write(“學(xué)生對象{0}銷毀”,name);}}this對象引用this.
50publicclassComplexNumber{privatedoublea;privatedoubleb;publicComplexNumber(doublea,doubleb){this.a=a;this.b=b;}publicvoidOutput(){Console.Write("{0}+{1}i",this.a,this.b=b);}}常用類型ObjectToString()GetType()
51objecto1=newobject();console.WriteLine(o1.GetType());o1="abc";Console.WriteLine(o1.GeType());System.ObjectSystem.String常用類型ObjectToString()GetType()Equals()
52objecto1=newobject();Students1=newStudent();console.Write(o1==s1);o1=s1;Console.Write(o1==s1);falsetrue常用類型String創(chuàng)建對象
53strings1="VisualC#";strings2=newstring('M',3);char[]v={'V','i','s','u','a','l'};strings3=newstring(v);strings4=newstring(v,0,3);常用類型String創(chuàng)建對象字符操作
54strings1="Apple";inti=s1.IndexOf('p');i=s1.LastIndexOf('p');s1=s1.ToUpper();s1=s2.Replace('P','A');1"APPLE"2"AAALE"常用類型String創(chuàng)建對象字符操作子串操作
55strings1="Software";inti=s1.IndexOf('ware');strings2=s1.SubString(0,4);strings3=s2.Insert(0,"Micro");s1=s2.Replace('soft','sun');4"soft""Microsoft""MicroSun"常用類型String創(chuàng)建對象字符操作子串操作格式化和解析
56strings1=string.Format("{0}年級{0}班",3);intx=8;s1=string.Format("{0}年{1}月",08,x);s1=string.Format("{0:C3}元",9999);常用類型DateTimeYear,Month,Day,Hour,Minute,SecondNow,TodayAddYears(),AddDays(),AddHours()...ToString(),Parse(),TryParse()
572.?dāng)?shù)組 數(shù)組是同一類型數(shù)據(jù)的有序集合。數(shù)組的聲明格式如下:
數(shù)組類型[]數(shù)組名;classClass1{ staticvoidMain() { string[]a1=newint[]{1,2,3};//一維數(shù)組 string[,]a2=newint[,]{{1,2,3},{4,5,6}};//二維數(shù)組 string[,,]a3=newint[10,20,30];//三維數(shù)組 }}還有重要的一個概念集合類將在后面講解//Single-dimensionalarrays(一維).int[]myArray1=newint[5];string[]myArray2=newstring[6];//Multidimensionalarrays(多維).int[,]myArray3=newint[4,2];
int[,,]myArray4=newint[4,2,3];
//Jaggedarray(arrayofarrays
交錯)int[][]myArray5=newint[3][];3.委托面向?qū)ο髴?yīng)用程序中,對象與對象之間通過消息和事件建立聯(lián)系。當(dāng)一個對象發(fā)生了某種事件時,會發(fā)出一定的消息去引發(fā)其他對象的方法來響應(yīng)該事件。如何在事件源與接收方之間建立聯(lián)系呢?.NET框架提供了一種特殊的類型“委托(Delegate)”,在事件源與事件接收者之間架起了一座橋梁委托的作用與結(jié)構(gòu)化程序中函數(shù)指針的作用相似,但具有面向?qū)ο蟆㈩愋桶踩刃碌奶卣?。講完面向?qū)ο蟾拍詈蟀才乓粋€例子進(jìn)行講解4.接口實(shí)現(xiàn)c#程序中的多重繼承機(jī)制 接口的聲明要用到interface關(guān)鍵字講完面向?qū)ο蟾拍詈蟀才乓粋€例子與設(shè)計(jì)模式一起進(jìn)行講解裝箱與拆箱
裝箱和拆箱機(jī)制使得在C#類型系統(tǒng)中,值類型的變量與引用型變量之間可以互相轉(zhuǎn)換。裝箱(Boxing)是指把數(shù)值類型的變量轉(zhuǎn)換成引用類型的操作。把一個值類型裝箱,就是創(chuàng)建一個object類型的實(shí)例并把該值類型數(shù)據(jù)復(fù)制給這個object實(shí)例。裝箱操作舉例如下:inti=2000;objectobj=i;裝箱操作轉(zhuǎn)換可以隱式轉(zhuǎn)換;將引用類型轉(zhuǎn)換為數(shù)值類型的操作稱為“拆箱(UnBoxing)”,該操作必須顯式地完成。拆箱操作舉例如下:objectobj1; intj=(int)obj1;常量與變量常量即在程序的運(yùn)行過程中其值不會發(fā)生改變的量。常量的聲明,就是聲明程序中要用到的常量的類型、名稱和它的值。常量聲明的格式為:常量修飾符const類型標(biāo)識符常量名=常量表達(dá)式;
privateconstintmax;其中常量修飾符可以是
new、private、protected、internal、public常量定義舉例如下: publicconstintx=1,y=3;變量是在程序的運(yùn)行過程中其值可以發(fā)生改變的量。從用戶的角度來看,變量就是存儲信息的基本單元;從系統(tǒng)的角度來看,變量就是計(jì)算機(jī)內(nèi)存中的一個存儲空間。變量必須先定義后使用。變量定義的一般形式為:[變量修飾符]類型標(biāo)識符變量標(biāo)識符[=常量表達(dá)式];變量修飾符有new、private、protected、internal、public、static和readonly。變量定義舉例如下:staticpublicintx=1;運(yùn)算符與表達(dá)式表達(dá)式由運(yùn)算數(shù)和運(yùn)算符組成,表達(dá)式中的運(yùn)算符指出了對操作數(shù)的操作。A.2.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式算術(shù)運(yùn)算符用來執(zhí)行常規(guī)的算術(shù)運(yùn)算包括+(加)、-(減)、*(乘)、/(除)%(模,求余數(shù))。
賦值運(yùn)算符與賦值表達(dá)式賦值運(yùn)算符主要用來進(jìn)行賦值操作,包括=+=、-=、*=、/=、%=、|=、^=、>>=和<<=賦值運(yùn)算符將左操作數(shù)與右邊表達(dá)式進(jìn)行相應(yīng)的運(yùn)算,然后把結(jié)果賦給左操作數(shù)。例如:
x+=6等價于x=x+6。關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符主要進(jìn)行表達(dá)式的比較操作包括==(等于)!=(不等于)>(大于)<(小于)>=(大于等于)<=(小于等于)這些運(yùn)算符都是二元運(yùn)算符,運(yùn)算結(jié)果為布爾值true或false
邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符與邏輯表達(dá)式位運(yùn)算符位運(yùn)算符用來對數(shù)據(jù)按二進(jìn)制位進(jìn)行運(yùn)算,包括&(與)|(或)^(異或)~(取反)<<(左移)>>(右移)其中取反是一元運(yùn)算符,其他操作符都是二元運(yùn)算符位運(yùn)算的操作數(shù)為整型數(shù)或者是可以轉(zhuǎn)換為整型的任何其他類型。對象創(chuàng)建運(yùn)算符即new
運(yùn)算符,用來創(chuàng)建對象并調(diào)用對象的構(gòu)造函數(shù)進(jìn)行初始化。例如,Class1obj=newClass1();該語句用于創(chuàng)建類Class1的對象obj,并調(diào)用Class1的構(gòu)造函數(shù)Class1()對該對象進(jìn)行初始化。其他運(yùn)算符++遞增運(yùn)算符:對操作數(shù)進(jìn)行加法運(yùn)算,例如,語句i++;等價于語句i=i+1;--遞減運(yùn)算符:對操作數(shù)進(jìn)行減法運(yùn)算,例如,語句i--;等價于語句i=i-1;條件運(yùn)算符:即“?:”,是一個三元運(yùn)算符。使用的一般形式為:
(表達(dá)式1)?(表達(dá)式2):(表達(dá)式3),
。例如:intmax=(x>y)?x:y;如果x>y為true,則把x賦給max,否則,把y賦給max流程控制語句C#提供了以下流程控制語句。(1)分支控制語句:if語句和switch語句。(2)循環(huán)控制語句:while語句、do-while
語句、for語句和foreach語句。(3)跳轉(zhuǎn)語句:break和continue。(4)異常處理語句:try、catch和finally。分支控制語句當(dāng)程序中需要進(jìn)行兩個或兩個以上的選擇時,可以根據(jù)條件判斷來選擇將要執(zhí)行的一組語句。C#提供的選擇語句有if語句和switch語句。if語句if語句是最常用的選擇語句,用來判斷是否滿足給定的條件,根據(jù)判定的結(jié)果決定執(zhí)行給出的兩種操作之一。例如,對一個浮點(diǎn)數(shù)x求絕對值,結(jié)果保存在x中
if(x<0)x=-x;例如,將兩個整型數(shù)x,y中較大的賦給整數(shù)max
if(x>y)max=x;elsemax=y;如果程序的邏輯判斷關(guān)系比較復(fù)雜,通常還可以采用條件判斷嵌套語句。此時每一條else與離它最近且沒有其他else與之對應(yīng)的if相搭配。循環(huán)控制語句循環(huán)語句用于實(shí)現(xiàn)一個程序模塊的重復(fù)執(zhí)行。C#提供了4種循環(huán)控制語句。while語句do-while語句for語句foreach語句1.while語句while語句用來實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。其一般形式如下:
while(布爾表達(dá)式)語句它的執(zhí)行順序?yàn)椋孩?計(jì)算布爾表達(dá)式的值;② 當(dāng)布爾表達(dá)式為真時,執(zhí)行while語句中的內(nèi)嵌語句,然后程序轉(zhuǎn)至第1步;③ 當(dāng)布爾表達(dá)式為假時,結(jié)束循環(huán)。例如用while語句求1+2+3+…+100,代碼如下:i=1;sum=0;while(i<=100){ sum+=i;i++;}Console.WriteLine("1+2…+100=",sum.toString());循環(huán)控制語句2.do-while語句do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。例如用do-while語句求1+2+3+…+100,代碼如下i=1;sum=0;do{sum+=i;i++;}while(i<=100);Console.WriteLine("1+2+3+…+100="+sum.toString());循環(huán)控制語句3.for語句在事先知道循環(huán)次數(shù)的情況下,使用for語句比較方便。For語句的格式為:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句其中表達(dá)式表達(dá)式1為循環(huán)控制變量初始化表達(dá)式2為循環(huán)控制條件表達(dá)式3為調(diào)整循環(huán)變量 3個表達(dá)式都可選的,缺省某個表達(dá)式時,其后的分號“;”不能省,如三個表達(dá)式都缺省的情況如下:for(;;){語句}例如用for語句計(jì)算1+2+3+…+100,代碼如下:
for(i=1;i<=100;i++)sum+=i; 循環(huán)控制語句4.foreach語句foreach語句是C#中新引入的,它表示收集一個集合中的各元素,并針對各元素執(zhí)行內(nèi)嵌語句。foreach一般形式為:
foreach(類型標(biāo)識符標(biāo)識符in表達(dá)式)語句例如int[]arr=newint[]{1,2,3,4,5};foreach(intainarr) Console.WriteLine(a);異常處理語句C#中提供的異常處理語句有:trycatchfinallytry語句提供了一種機(jī)制來捕捉塊執(zhí)行過程中發(fā)生的異常。它的一般形式為try{被保護(hù)的語句塊 }catch(異常聲明1){語句1}Catch() {語句2}Finally{必須執(zhí)行的語句}控制結(jié)構(gòu)跳轉(zhuǎn)break82while(true){x*=2;if(x>=100)break;}控制結(jié)構(gòu)跳轉(zhuǎn)breakcontinue83while(true){x*=2;if(x<100)continue;}控制結(jié)構(gòu)跳轉(zhuǎn)breakcontinuereturn84while(true){x*=2;if(x>1000)return;}程序結(jié)構(gòu)命名空間:提供組織相關(guān)的類的邏輯層次結(jié)構(gòu),一個類可以放到一個命名空間里;C#規(guī)定,必須有一個類包含一個靜態(tài)的Main()方法,返回值必須是int或void;單步執(zhí)行:使用快捷鍵F11或菜單命令“調(diào)試”---“逐語句”設(shè)置斷點(diǎn):將光標(biāo)放到想要暫停的地方使用快捷鍵F9或Ctrl+B.NETFramework:.NETFramework具有兩個主要組件:公共語言運(yùn)行庫:您可以將運(yùn)行庫看作一個在執(zhí)行時管理代碼的代理,它提供內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心服務(wù),并且還強(qiáng)制實(shí)施嚴(yán)格的類型安全以及可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行庫的基本原則。以運(yùn)行庫為目標(biāo)的代碼稱為托管代碼,而不以運(yùn)行庫為目標(biāo)的代碼稱為非托管代碼。
.NETFramework類庫。它是一個綜合性的面向?qū)ο蟮目芍赜妙愋图希梢允褂盟_發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面(GUI)應(yīng)用程序,也包括基于ASP.NET所提供的最新創(chuàng)新的應(yīng)用程序(如Web窗體和XMLWebservices)。類庫.NETFramework類庫由命名空間組成。每個命名空間都包含可在程序中使用的類型:類、結(jié)構(gòu)、枚舉、委托和接口。當(dāng)您在VisualStudio中創(chuàng)建VisualC#項(xiàng)目時,已經(jīng)引用了最常用的基類DLL(程序集)。但是,如果您需要使用尚未引用的DLL中的類型,則需向此DLL添加引用。.基本編程命名空間包括System.Collections—它包含的接口和類定義各種對象(如列表、隊(duì)列、數(shù)組、哈希表和字典)集合。System.Collections.Generic--包含定義泛型集合的接口和類;泛型集合允許用戶創(chuàng)建強(qiáng)類型的集合,這種集合在類型安全和性能上均優(yōu)于非泛型強(qiáng)類型集合。System.IO—它包含的類型用于支持?jǐn)?shù)據(jù)流和文件的同步和異步讀寫。System.Text—它包含表示ASCII、Unicode、UTF-7和UTF-8字符編碼的類;用于來回轉(zhuǎn)換字符塊和字節(jié)塊的抽象基類;以及在不創(chuàng)建String中間實(shí)例的情況下操作和格式化String對象的幫助器類。System.Threading—提供啟用多線程編程的類和接口。此命名空間包括一個管理線程組的ThreadPool類,一個啟用在指定時間后要調(diào)用的委托的Timer類,以及一個同步互斥線程的Mutex類。System.Threading還為線程調(diào)度和等待通知提供了相應(yīng)的類。.數(shù)據(jù)和XML命名空間包括:System.Data—由構(gòu)成ADO.NET結(jié)構(gòu)的類組成,該結(jié)構(gòu)是托管應(yīng)用程序的主要數(shù)據(jù)訪問方法。ADO.NET結(jié)構(gòu)使您可以生成可用于有效管理來自多個數(shù)據(jù)源的數(shù)據(jù)的組件
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東白云學(xué)院《平面廣告》2023-2024學(xué)年第一學(xué)期期末試卷
- 共青科技職業(yè)學(xué)院《智能汽車傳感技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)經(jīng)大學(xué)《古代女性文學(xué)研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 貨運(yùn)司機(jī)培訓(xùn)課件
- 贛南衛(wèi)生健康職業(yè)學(xué)院《JavaWeb程序設(shè)計(jì)SIT》2023-2024學(xué)年第一學(xué)期期末試卷
- 2022年上海注冊會計(jì)師《審計(jì)》考試題庫(含典型題和真題)
- 贛東學(xué)院《小學(xué)跨學(xué)科教育研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級生物上冊第三單元生物圈中的綠色植物第五章綠色植物與生物圈中的碳-氧平衡第一節(jié)光合作用吸收二氧化碳釋放氧氣教案新版新人教版1
- 七年級道德與法治上冊第一單元成長的節(jié)拍第一課中學(xué)時代第一框中學(xué)序曲教案新人教版
- 《常見案例分析類型》課件
- 《經(jīng)濟(jì)學(xué)導(dǎo)論》考試復(fù)習(xí)題庫(含答案)
- 農(nóng)田水利渠道灌溉與排水課件
- 人體解剖上肢血管
- 精品解析浙教版科學(xué) 九年級上冊 3.43 簡單機(jī)械之機(jī)械效率 同步練習(xí)
- 六棱塊護(hù)坡施工方案
- 機(jī)械制圖課件(完整版)
- 夸美紐斯-大教學(xué)論-文本細(xì)讀
- 《行政組織學(xué)小抄》word版
- 日立多聯(lián)機(jī)系統(tǒng)調(diào)試培訓(xùn)教材
- (完整版)環(huán)境科學(xué)與工程-專業(yè)英語詞匯必備(免費(fèi))
- 交通管理與控制課件(全)全書教學(xué)教程完整版電子教案最全幻燈片
評論
0/150
提交評論