版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2C#3.0ASP.NET3.5的特性和一些基本的.NETFramework知識,不過如果要深入到言就是C#,本章將會(huì)從C#的語法、結(jié)構(gòu)和特性來講解,以便讀者能夠深入的了解C#程序設(shè)計(jì)。C#程序C#程序有自己的程序結(jié)構(gòu)。C#C++/Java等面向?qū)ο缶幊陶Z言,同樣需要編寫類、創(chuàng)建對象等。但是C#依舊有與其他面向?qū)ο缶幊陶Z言不同的特性,使用這些特性能夠快速的正確的編寫C#宿主語言的應(yīng)用程序,如ASP.NET、WinForm等。C#usingusingSystem.Linq;using{class{staticvoidMain(string[]{ o usingusingSystem.Linq;using{class{staticvoidMain(string[]{ o o }}}其中,using關(guān)鍵字的用途是微軟的.NET框架中現(xiàn)有的類庫資源,該關(guān)鍵字出現(xiàn)在應(yīng)用程序代碼的開頭,并使用在cs為后綴的文件中使用。using關(guān)鍵字通常情況下會(huì)出現(xiàn)幾次,其目的是類庫用程序的各種類庫資源。.NET中提供大量名空間,以便開發(fā)人員能夠使用現(xiàn)有的類庫進(jìn)行應(yīng)用程另外,Program是一個(gè)類名。在C#或其他的任何面向?qū)ο笳Z言中(如JAVA、C++)都需要編寫類,類用于創(chuàng)建對象。在上述代碼中,Program是一個(gè)類的名稱。9行中,staticvoidMain是一個(gè)全局靜態(tài)方法,它指示編譯器從此處開始執(zhí)行程序,相當(dāng)于程序的,程序運(yùn)行的時(shí)候會(huì)執(zhí)行Main方法作為。在C#語句就是在C#應(yīng)用程序中包含的指令,通過使用分號進(jìn)行分割,編譯器通過分號來區(qū)分它們。一些編程語言只允許一行放置一條語句,但是C#允許放置多個(gè)語句,也可以將一個(gè)語句拆分成多行。雖然C#編譯器支持這樣的特性,但是還是推薦使用一行放置一個(gè)語句的,這樣不僅提高了可讀性,也便Programnamespacemycsharp命名空間囊括了此命名空間里的所有類。值得注意的是,VisualStudio2008為開發(fā)人員在編寫程序的時(shí)候提供了諸多的智能提示,在完成一個(gè)類或一個(gè)變圖2-1所示。圖2-1元素被標(biāo)C#IDE的代碼設(shè)usingusingSystem.Linq;usingSystem.Text;{classusingusingSystem.Linq;usingSystem.Text;{class{{staticvoidMain(string[]{o oine("按任意鍵退出Console.ReadKey();//這里讓用戶按鍵后退出,}}}縮Main方法的代碼區(qū)域,這是因?yàn)槔ㄌ柖际怯袑哟笮懨艨兆/C++C#里布局風(fēng)classclass{staticvoidMain(string[]{o oine("按任意鍵退出Console.ReadKey();//這里讓用戶按鍵后退出,} classclass{staticvoidMain(string[]{ o o }}變變量在任何的應(yīng)用程序開發(fā)中都是非?;A(chǔ)也是非常重要的。同樣,在C#中也需要變量對數(shù)據(jù)進(jìn)行存儲(chǔ),本節(jié)將會(huì)介紹C#的基本語法、數(shù)據(jù)類型、變量、枚舉等。定2-10~255之間的1-128~127之間的1-32768~32767之間的整20~65535之間的2 之間的4 之間的整4 7之間的整8 15之間的8布爾值,trueof1480~65535之間的單個(gè)Unicode2任意長度的Unicode字符intintfloat 上述代 了一個(gè)整型的變量s,同時(shí) 了一個(gè)單精度浮點(diǎn)型變量myfloat值類ints=3; ints=3; intints= nullnulls類類型的變量又稱為對象,是可對實(shí)際數(shù)據(jù)的。常見的類型有class、interface、delegate、object和string。多個(gè)變量可以附加于一個(gè)對象,而且某些可以不附加于任何對象,的值不能為null。變量規(guī)則變量并不是隨意的,變量的有自己的規(guī)則。在C#中,應(yīng)用程序包含許多關(guān)鍵字,包括int等是不能夠?yàn)樽兞棵?,如intint是不允許的,在進(jìn)行變量的和定義時(shí),需要注意變量命名規(guī)則和命名習(xí)慣間取個(gè)好名,不僅要好記,還要說明一些特性。在C#里面,有常用的一些命名的習(xí)慣如下。string 當(dāng)然,在其他編程中,不同的開發(fā)人員可能遇到了一些不一樣名規(guī)則和命名習(xí)慣,但string 關(guān)鍵字重名,如果變量名稱與關(guān)鍵字重名,編譯器就會(huì)報(bào)錯(cuò),C#中常用的關(guān)鍵字如表2-2所示:2-2應(yīng)該使用Camel大寫格式。并初始化變語intstring intstring 初始化變變量在后還需要初始化,例如“我21歲,很年輕,買一輛紅色的車”,那么就需要intstringage=始化,21intstringintstring 賦floata Double類型轉(zhuǎn)換為“float”類型;請使用“F”floata 2-3ULFDML轉(zhuǎn)義字字符,常用的轉(zhuǎn)義字符表如表2-4所示。2-4stringstr=”thisstringstr=”thisis 6.設(shè)置斷VisualStudioNET開發(fā)環(huán)境中,為用戶提供了在開發(fā)應(yīng)用程序時(shí)查看變量值的工具,只需要在鈕,或使用快捷鍵【F9】鍵來設(shè)置斷點(diǎn),如圖2-2所示。2-2程序從Main運(yùn)行并直至遇到斷點(diǎn),遇到斷點(diǎn)后程序?qū)⑼V惯\(yùn)行,如圖2-3所示。同時(shí)開發(fā)環(huán)境會(huì)顯示下一條即將執(zhí)行的代碼,同時(shí)調(diào)試查看窗口會(huì)顯示,并呈現(xiàn)變量的當(dāng)前值,如圖2-4所示,。圖2-3運(yùn)行到斷點(diǎn),提示下一步執(zhí)行的代 圖2-4顯示當(dāng)前續(xù)執(zhí)行到下一個(gè)斷點(diǎn)】選項(xiàng)進(jìn)行執(zhí)行。開發(fā)人員還可以通過使用快捷鍵【F10】,或在調(diào)試菜單中選擇數(shù)數(shù)組的string[] 以上語句了一個(gè)變量名為groups的數(shù)組,其數(shù)據(jù)類型為string。了一個(gè)數(shù)組之后,并沒有數(shù)組的初始stringstring 所以groups[0]的值應(yīng)該是“”而不是“c#”,相比之下,group[1]的值才應(yīng)該是“c#”。3..NET中數(shù)組的常用的屬性和方法在.NET中,.NET框架為開發(fā)人員提供了方便的方法來對數(shù)組進(jìn)行運(yùn)算,專注于邏輯處理的開發(fā)人usingusingusingSystem.Linq;usingSystem.Text;{class{staticvoidMain(string[]{string[]intcount= for(inti0icount { }}}2-5并初始化字符串及初始化字符串是一個(gè)字符串。由于數(shù)組也是有其數(shù)據(jù)類型的,所以的數(shù)組是一個(gè)字符串型的數(shù)組。字符串的方式和其他的數(shù)據(jù)類型方式相同,字符串變量的值必須在“”雙引號之間,示例代碼如下所示。stringo 2.3.2中講解了轉(zhuǎn)義字符,當(dāng)開發(fā)人員試圖在字符串中間輸入一些特殊符號的時(shí)候,會(huì)發(fā)現(xiàn)編譯 string o stringo stringo2-6 string 在程序中的開發(fā)中,經(jīng)常需要和打開某個(gè)文件,打開文件的操作必須要文件夾的地址。例如要打開我的文檔里的內(nèi)容,就必須在地址欄敲擊D:\Users\Administrator\s,在編寫程 string 使用逐字符
2-7還是制表符,都會(huì)按照原樣輸出。逐字符串的只需要在雙引號前加上字符“@”即可,示例代碼如stringstr=@"文件地址:D:\Userss 2-8stringstring 字符串格式
2-9stringstr= ine("Hi!Mynameis{0},IloveC#",str);
2-10stringstr2="C#"; ine("Hi!Mynameis{0},Istringstr2="C#"; ine("Hi!Mynameis{0},Ilove2-11操作字符比較字符stringstr2="C#";if(str=={ ine("stringstr2="C#";if(str=={ ine("字符串相等 }{ ine("字符串不相等}stringstr=stringstr=stringstr2= if{pareTo(str2)> ine("字符不串相等 }{ ine("字符串相等}2-12連接字符stringstr="Guojingstringstr="GuojingisAC# stringstr2= stringstr2= 2-132-13stringmystr=strstringmystr=str+ 注意:在上述代碼中,mystr被初始化str和str2的“和”,但是在運(yùn)算過程當(dāng)中,str和str2的值都沒拆分字符stringstr="Guojingstringstr="GuojingisAC# stringstr stringp for(inti0ip.Length { }編stringstr stringp for(inti0ip.Length { }上述代碼第一句并初始化了一個(gè)字符串,第二句使用Split函數(shù)按照逗號來分割字符串,并存入到數(shù)組p內(nèi),然后遍歷顯示數(shù)組元素。更改字符串大小在 系統(tǒng)為開發(fā)人員提供了將字符串更改為大寫或小寫的方這兩個(gè)方法分別為stringstr= ToLower()。使用該方法能夠進(jìn)stringstr= 常用的字符串操在C#軟件開發(fā)過程,字符串是使用率最高的數(shù)據(jù)類型之一,開發(fā)人員往往需要對字符串進(jìn)行大量if(String.IsNullOrEmpty(str)){
}{}
ine("字符串為空 ine("字符串不為空
stringstrstringstr str= ce方 創(chuàng)建和使用常constdouble;constdouble;{doubledoubleround=2*pi*r*double }doublePerimeterdoublePerimeter2*pi* 前面定義了常量pi=3. 的方法,只需要在普通的變量格式前加上const關(guān)鍵字即可,代碼如下所示。創(chuàng)建并使用枚員枚舉變量,VisualStudio2008還能夠提供的智能感知功能夠讓代碼更加方便的輸入。及初始化枚enumcolor class{staticvoidMain(string[]args){ }}class{staticvoidMain(string[]args){ }}使用枚舉類colormycolor= colormycolor= 4.枚舉成員的賦值和常用類enumcolor:int enumcolor:int enumcolor 類型轉(zhuǎn)inti=inti= 在上述代碼中i是整型變量而Wri ine方法的參數(shù)是Object類型,但是Wri ine方法依舊能夠正隱式轉(zhuǎn)換是一種由CLR自動(dòng)執(zhí)行的類型轉(zhuǎn)換,如上述代碼中的,就是一種隱式的轉(zhuǎn)換(開發(fā)人員不明確指定的轉(zhuǎn)換)CLRintstring型。在.NET中,CLR支持許多數(shù)據(jù)類型的隱式轉(zhuǎn)換,CLR支持的類型轉(zhuǎn)換列表如表2-5所示。2-5CLRintiinti=floatj= typetypevariable1=(cast-3.14153intj=(int)i; intj=(int)i; stringi=stringi= stringi=intj= stringi=intj= 編寫表達(dá)表達(dá)式和運(yùn)算定運(yùn)算符類的運(yùn)算符如表2-6所示。2-6(x),x.y,f(x),a[x],x++,x--+,-=,+=,-算術(shù)運(yùn)算intainta=1;intb=intc=a+b;intd=1+2;inte=1+a;intf=b-a;intf=b/ intb=3; 1031C#的運(yùn)算符中還包括自增和自減運(yùn)算符,如“++”和“--”運(yùn)算符。++和--運(yùn)算符是一個(gè)單操作運(yùn)算符,將目的操作數(shù)自增或自減1。該inta=10;inta2=10;intb=a++;intinta=10;inta2=10;intb=a++;intc=++a2; ine("ais"+ine("bis"+ine("cis"+2-14++intb= intb= intc=intc= 關(guān)系運(yùn)算stringstringa="nihao";stringb="nihao";if(a==b){}{} ine("相等ine("不相等stringstringa="nihao";stringb="nihao";if(a==b){}{} ine((a==ine((a==該條件所以可以直接編寫在if語句中進(jìn)行條件篩選和判斷。以使用類型轉(zhuǎn)換Convert.ToBoolean方法轉(zhuǎn)換。if(a if(a 邏輯運(yùn)算boolmyBool=boolboolmyBool=boolnotTrue=boolmyBool= 與其他編程語言相似的是,C#ANDboolmyBool= boolboolnotTrue=boolresult=myBool&&boolmyBool=true;boolresultboolmyBool=true;boolresult=myBool&&if{ }{ }othertrue,result的值為falseresult&&other語句中,會(huì)否操作數(shù)是否相同,若操作數(shù)的布爾值相同,則表達(dá)式將返回false。if(result){}{}intresult=if{intresult=if{ }{ }注意:在編程語言中,非0的數(shù)值都為true,雖然C#不支持隱式的轉(zhuǎn)換int到boolConvert.ToBoolean0true位運(yùn)算intresult= intresult= AND運(yùn)算,從而生成新的操作數(shù),AND00,原理如圖2-16所示。圖2-15左 圖2-16AND位運(yùn)算,當(dāng)有一個(gè)值為1,則結(jié)果為1,其原理如圖2-17所示。XOR位運(yùn)算符“^AND位運(yùn)算符類似,其區(qū)別在于當(dāng)兩個(gè)值相同時(shí),執(zhí)行計(jì)算的結(jié)果為0,否則為1,其原理圖如2-18所示。圖2-17OR位運(yùn) 圖2-18XOR位運(yùn)取補(bǔ)運(yùn)算符“~10012-2-19賦值運(yùn)算inta=b=c=inta=b=c= a a aa aa a&a& a 條件運(yùn)算boolstringresult=ifisTrue?"true":"false";
上述代碼中,使用了條件運(yùn)算符“?:”,條件運(yùn)算符“?:”會(huì)執(zhí)行第一個(gè)條件,若條件成立,則返etruetrue技巧:當(dāng)條件運(yùn)算符的時(shí)候,“?”可以被為“條件成立嗎”,如果成立,則執(zhí)行第一個(gè),否(1>2)?12可以解釋成1大于2嗎,大于則返回1運(yùn)算符的優(yōu)先運(yùn)算順2-7X.y,f(x),a[x],x++,x--=,+=,-c=c=a+b*c=(a+b)*左結(jié)合和右a+a+b+a=b=使用條件語if還包括if、ifelse、ifelseif等語句用于執(zhí)行復(fù)雜的條件選擇。if語句的使用方if語句用于判斷條件并按照相應(yīng)的條件執(zhí)行不同的代碼塊,if語句包括多種呈現(xiàn)形式,這些形式分別是if、ifelse、ifelseif。if語句if(布爾值)程序語if語if(布爾值)程序語ifif{console.wri}不會(huì)輸出字符串true。if(布爾值)程if(布爾值)程序語1elseif{}{{console.wri}ifelseif語句ifif(month=={console.wri}elseif(month=={console.wri}elseif(month=={console.wri } {console.wriine("wedon’thavethis }使用布爾值和布爾表達(dá)if{console.wri}if{console.wri}if{console.wri}if{console.wri}if{console.wriif{console.wriine("a和b相等,bc也相等}使用三元運(yùn)switch選擇語句的使switchif語句中,if語句只能測試單個(gè)條件,switch選擇語句switch(參數(shù)的值switch(參數(shù)的值{case1:1case2:2case3:3}switchswitchcase標(biāo)記相應(yīng)的switchcase對應(yīng)的值的時(shí)候,switch語句就會(huì)執(zhí)行對應(yīng)的case的值后的操作,并break結(jié)尾跳出switchdefault條件,執(zhí)行默認(rèn)代碼,示例代碼intx;intx;{case0:case1:case2:Console.Wri}//switchine("thisis0");break;ine("thisis1");break;ine("thisis2"); ine("thisis0")x1case1的操作。switch不僅能夠通過數(shù)字進(jìn)行判斷,還能夠通過字符進(jìn)行使用break跳出語C#switchC#注意:在C#中,可以使用goto語句模擬,繼續(xù)執(zhí)行下一個(gè)case或default。盡管在程序中可以這樣做,但是會(huì)降低代碼的可讀性,所以不推薦使用goto語句。switchintx;intx;{case0://switchine("thisis0");case1:Console.Wri case1:Console.Wri ine("thisis1");break;case2: ine("thisis2"); ine("noone");//x=1//x=2}x,并初始化,執(zhí)行switchx00Console.Wriine("thisis0");breakswitchx3的,switchcasedefault標(biāo)記并使用枚舉類enumseason{spring,summer,autumn,winterenumseason{spring,summer,autumn,winter}staticvoidMain(string[]args){switch(mySeason){ : ine("thisisspring //mySeason=springcaseseason.summer:Console.Wri ine("thisissummer");break;//mySeason=summer時(shí)caseseason.autumn:Console.Wri ine("thisisautumn");break;//mySeason=autumn時(shí)caseseason.winter:Console.Wri ine("thisiswinter");break; //mySeason=winter時(shí)default:Console.Wri ine("noone");break;} }case
2-20switchswitch{caseswitch{casecaseseason.summer:Console.Wricaseseason.autumn:ine("thisisspringandsummerbreak;//ine("thisisautumnandwinter");break;//default ine("noone // 使用循環(huán)語while、do、foreach。for循環(huán)語中的條件為true時(shí),就會(huì)一直循環(huán)代碼塊。因?yàn)檠h(huán)的次數(shù)是在執(zhí)行循環(huán)語句之前計(jì)算的,所以for循for循環(huán)的優(yōu)點(diǎn)就for循環(huán)的條件都位于同一位置,同樣,循環(huán)的條件可以使用復(fù)雜的布爾表達(dá)式表示。for循環(huán)表達(dá)式包含三個(gè)部分,即初始化表達(dá)式、條件表達(dá)式和迭代表達(dá)式。當(dāng)for循環(huán)執(zhí)行時(shí),for語句循環(huán)示意圖2-21所示2-21forfor(inti=for(inti=0;i<100;{ }結(jié)構(gòu)非常靈活,同樣for循環(huán)的條件,迭代表達(dá)式也不僅僅局限與此。for(inti=0,j=0;(i<100)&&(j<100);for(inti=0,j=0;(i<100)&&(j<100);i++,{ ine("iis ine("jis" }while循環(huán)語while語句for語句一樣都可以執(zhí)行循環(huán),但是while的使用更加靈活,開發(fā)人員可以在代碼塊執(zhí)whilewhile語句包括兩個(gè)部分,布爾值和執(zhí)行語句,while語句執(zhí)行步驟一般如下所示while語句示例代碼如下所示
2-22whilex= while(x!={}while(x!={}continue關(guān)鍵字:繼續(xù)執(zhí)行語intx,y;x=intx,y;x=y=while(x!={} 上述代碼了x,y兩個(gè)整型變量,并初始化值為10,當(dāng)x不等于1時(shí)執(zhí)行while循環(huán)。在whilecontinuewhilecontinue關(guān)鍵字后的語句,如y—語句。2.breakbreak關(guān)鍵字允許程序在while循環(huán)中跳出并終止循環(huán),從而能夠繼續(xù)執(zhí)行循環(huán)后的語句,示例代碼while(x!={if(x=={}}x5。x5break語句會(huì)生效并跳出循環(huán),繼續(xù)執(zhí)行while循環(huán)dowhile循環(huán)語dowhile循環(huán)和while循環(huán)十分相別在dowhile循環(huán)會(huì)執(zhí)行一然后再判斷while中的條件。這種循環(huán)成為后測試循環(huán),當(dāng)程序需要執(zhí)行一次語句再循環(huán)的時(shí)候,dowhile語句是非常實(shí)用的。dowhile語句語法格式如下所示。 dowhilewhile循環(huán)語句不同的時(shí),執(zhí)行步驟首先執(zhí)行while語句循環(huán)示意圖如圖2-23所示。2-23dowhile{x{x}while(x< foreach循環(huán)語foreachin集合)合或者數(shù)組中的所有條目,使用foreach是很好的解決方案。foreachforeachin集合)foreachforeach循環(huán)示意圖2-24所示foreach語句示例代碼如下所示
2-24foreachstringst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職中西面點(diǎn)(糕點(diǎn)烘焙技術(shù))試題及答案
- 2026年導(dǎo)游服務(wù)(景點(diǎn)講解)試題及答案
- 2025年中職汽車電子技術(shù)(汽車電子控制系統(tǒng))試題及答案
- 2025年中職設(shè)施農(nóng)業(yè)技術(shù)(大棚蔬菜種植)試題及答案
- 中學(xué)女生安全教育課件
- 運(yùn)輸專業(yè)制度匯編模板
- 養(yǎng)老院老人生活照顧人員社會(huì)保險(xiǎn)制度
- 養(yǎng)老院老人健康飲食制度
- 養(yǎng)老院入住老人交通安全保障制度
- 央視介紹教學(xué)課件
- 2025北京陳經(jīng)綸中學(xué)高一9月月考物理(貫通班)試題含答案
- 中國鋁礦行業(yè)現(xiàn)狀分析報(bào)告
- 物業(yè)人員消防安全培訓(xùn)課件
- 2025年大學(xué)大四(預(yù)防醫(yī)學(xué))環(huán)境衛(wèi)生學(xué)階段測試試題及答案
- 文物安全保護(hù)責(zé)任書范本
- 產(chǎn)房護(hù)士長年度工作業(yè)績總結(jié)與展望
- 【初中 歷史】2025-2026學(xué)年統(tǒng)編版八年級上學(xué)期歷史總復(fù)習(xí) 課件
- 2025~2026學(xué)年黑龍江省哈爾濱市道里區(qū)第七十六中學(xué)校九年級上學(xué)期9月培優(yōu)(四)化學(xué)試卷
- 2025年律師事務(wù)所黨支部書記年終述職報(bào)告
- 中國腦小血管病診治指南2025
- 中國零排放貨運(yùn)走廊創(chuàng)新實(shí)踐經(jīng)驗(yàn)、挑戰(zhàn)與建議
評論
0/150
提交評論