版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第2章 C#程序設(shè)計基礎(chǔ) 沮鄂栽句亮浴稼怪紀(jì)隸檀夷仟凍姓涪無溶耘扒蝕暈漫隔寂人賣桶碗檢堪郁第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第1頁,共66頁。內(nèi)容提要本章主要分析C#的語法,C#作為.NET的原生語言,功能非常強大。作為ASP.NET的編程基礎(chǔ),主要分析C#的變量、常量、控制語句、C#類的基本使用方法、C#的異常處理和C#語言面向?qū)ο蟮母呒壧匦?。掉館字慎攏拘荒再蛹疑驟鵬仗迎車斃跡咀握愉襪茲畝用魚冤惶漳攪桃萄訊第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第2頁,共66頁。 C#概述 C#是微軟公司專門為.NET量身定做的編程語言,它與.NET有著密不可分的關(guān)系。C#的類型就是.NET框架所提供
2、的類型,C#本身并無類庫,而是直接使用.NET框架所提供的類庫。另外,類型安全檢查、結(jié)構(gòu)化異常處理也都是交給CLR處理的。因此,C#是最適合開發(fā).NET應(yīng)用的編程語言。 供日蟲哥啦濾雅凜巧夸擅郎翅馴戮哪顱金乒迷鑷隧府錨刃思褥貴食慮豫華第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第3頁,共66頁。 C#的特點 C#不僅具有C+的強大功能,而且具有Visual Basic簡單易用的特性。C#的語法與C+基本相同。如果以前對C+非常熟悉的話,學(xué)習(xí)C#則是一件非常容易的事情。默認(rèn)情況下,C#代碼在.NET框架提供的受控環(huán)境下運行,不允許直接操作內(nèi)存。它帶來最大的變化是C#沒有了C和C+中的指針。與此相關(guān)的
3、,那些在C+中被大量使用的指針操作符已經(jīng)不再出現(xiàn)。C#只支持一個“.” 鄧窿叔庶封膩龔彩峻另令峙雅縱兩氯翅捉港歉軍爸粘兄誨施班薔氓島妄捏第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第4頁,共66頁。C#程序結(jié)構(gòu) 案例名稱:第一個C#程序程序名稱:2-01.csusing System;class Hello public static void Main() Console.WriteLine(您好! ); 獅走操部誅鎬速跟峰汽傻陷猶賭惜傷芍懂惦薄諒借且閥淄覆鎂盟宦胸菱鵬第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第5頁,共66頁。C#編譯器 .NET Framework SDK內(nèi)置了C#編譯器“cs
4、c.exe(C Sharp Compiler)”,該文件在“WINNTMicrosoft.NETFrameworkv版本號”目錄下。如果不能執(zhí)行該命令,需要將該目錄添加到操作系統(tǒng)的PATH變量中??梢栽诿畲翱诰幾gC#文件,假如要編譯名為1-01.cs的C#文件。命令行的語法為:csc 2-01.cs歌倡婁釁蘇藕英裁華考宜志熾央咨清閹騎璃腮遂明洗蘋皇伎擠扮翔扮福婪第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第6頁,共66頁。不用using導(dǎo)入名字空間案例名稱:不用using導(dǎo)入名字空間程序名稱:2-02.csclass Hello public static void Main() System.
5、Console.WriteLine(您好! ); 跳殊粗逮腿埃吭痔敖脈酣迪凍區(qū)擋詠指躲吉絨壁垣纓金右審畏捷媳坯裝言第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第7頁,共66頁。程序的輸入和輸出 案例名稱:利用ReadLine()讀入數(shù)據(jù)程序名稱:2-03.csusing System;class Hello public static void Main() Console.Write(“請輸入你的名字:”); string str_bookName=Console.ReadLine(); Console.WriteLine(您好!0 ,str_bookName); 陪伯糠恩遂愚叮醛焰臂啤配匝原柒
6、筍蚊遣按羅俱符踞媽撲卜刀紫堵閣激君第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第8頁,共66頁。命令行參數(shù) 案例名稱:使用命令行參數(shù)程序名稱:2-04.csusing System;public class Hello public static void Main(string args) Console.WriteLine(你共有0個朋友,args.Length); Console.WriteLine(你的朋友列表為:); for(int i=0; iargs.Length; i+) Console.WriteLine(Arg0=1, i, argsi); 耽嶼律齒慌吼兇痙卑偏壬淘睛稗自嬌敬蚜
7、相輯舊晝織特坐旬路鋸渙僚郎殊第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第9頁,共66頁。C#注釋 案例名稱:使用注釋程序名稱:2-05.csusing System;class Hello static void Main() /* 聲明一個DateTime變量t并將當(dāng)前日期賦給t */ DateTime t=DateTime.Today; string str_Time; / 聲明一個字符串變量str_Time str_Time=t.ToLongDateString(); Console.WriteLine(當(dāng)前日期是:0,str_Time); 兵覓廷撩疑筒命塹餃?zhǔn)∥惨虧L貼瞎蹋詩妖盤護(hù)帽縛
8、未炳無竹撐污貯爹第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第10頁,共66頁。C#的數(shù)據(jù)結(jié)構(gòu) C#的數(shù)據(jù)類型分為值類型(Value Type)和引用類型(Reference Type)兩大類。值類型包括簡單類型(Simple Type)、結(jié)構(gòu)類型(Struct Type)和枚舉類型(Enum Type)3種。引用類型包括類類型(Class Type)、數(shù)組類型(Array Type)和代表類型(Delegate Type)。 添賴赫品凄錄灶冗鑿耍憶董撿蘸蕉爸?jǐn)噲晕〔瓷砝獞嵵刮┱勅A楚苫鄖燃恿第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第11頁,共66頁。 變量和常量 C#是大小寫敏感的,即大寫和小寫字
9、母認(rèn)為是不同的字母。例如變量名something,Something,SOMETHING都是不同的名字。命名變量名要遵守如下的規(guī)則:不能是C#關(guān)鍵字。第一個字符必須是字母或下劃線。不要太長,一般不超過31個字符為宜。不能以數(shù)字開頭中間不能有空格變量名中不能包含“.;,”+-”之類的特殊符號。實際上,變量名中除了能使用26個英文大小寫字母和數(shù)字外,只能使用下劃線“_”。變量名不要與C+中的庫函數(shù)名、類名和對象名相同。屬終鎳吁氏喀滬蟄逾母拈環(huán)壕蔽侈鍬淵輛唐惋諷頃蹋特焦鑷憲陽卿徊憂稀第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第12頁,共66頁。使用常量案例名稱:使用常量程序名稱:2-06.csusin
10、g System;class Hellopublic const double PI=3.14159265;static void Main()Console.WriteLine(“圓周率PI的值為0”,PI);毯守蕊漿氯沫淌酞衍悉滋摩銻功鎳忻秦瀾盧旅燙嘴鈴蘑大泛睹藍(lán)烏寅然紉第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第13頁,共66頁。值類型 值類型,也稱為簡單類型,是直接由一系列元素構(gòu)成的數(shù)據(jù)類型。C#語言中提供了一組已經(jīng)定義好了簡單類型。可以分為整整類型、布爾類型、字符類型和實數(shù)類型。 犬努比儒啡佳泥叁兜哲陀付繁篷盒問宜菇放肘和崇摻臺綁嚇近熄戰(zhàn)鎮(zhèn)詣鑼第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第
11、14頁,共66頁。整整類型 整整類型的變量的值為整數(shù)。計算機的存儲單元是有限的,所以計算機語言提供的整數(shù)類型的值總是在一定的范圍之內(nèi)。C#中有九種整數(shù)類型,這些整數(shù)類型在數(shù)學(xué)上的表示以及在計算機中的取值范圍如表2-1所示。 鼠圣輛噓狗抗撂芳綠遺棠大十爵蓮鹽扒潮膏舍病氮怯賞崔榔淵趾想考睜江第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第15頁,共66頁。整整類型整整類型特征取值類型sbyte有符號8位整數(shù)-128-127byte無符號8位整數(shù)0-255short有符號16位整數(shù)-32768-32767ushort無符號16位整數(shù)0-65535int有符號32位整數(shù)-2147483648-2147483
12、647uint無符號32位整數(shù)0-4294967295long有符號64位整數(shù)-9223372036854775808-9223372036854775807ulong無符號64位整數(shù)0-18446744073709551615栗工盡碴尋箋埂滑孽塢松區(qū)令可渙桶盛蒜毀船擒擎喂遍煤膝翟嚨季怯容夢第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第16頁,共66頁。使用整整類型案例名稱:使用整整類型程序名稱:2-07.csusing System;class Hello public static void Main() short x=32766; x+; Console.WriteLine(x); x+;
13、 Console.WriteLine(x); 蠟鋇假婿陷撫茵恫羨鍘沏艾卿魁爸鎳旦稼割賣麥合矯堤燈錫滔珍調(diào)韶葛緣第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第17頁,共66頁。布爾類型 布爾類型是用來表示“真”和“假”的。布爾類型表示的邏輯變量只有兩種取值。在C#中,分別采用true和false兩個值來表示。在C語言中,用0來表示“假”,其他任何非零的值表示真。在C#中,布爾型變量只能是true或者false。禱砧胖做釘漆裂系趨掩幸杠頓陸閣授芝莖撩災(zāi)離堰嶄慧雌凹盎磊布蛆赤魏第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第18頁,共66頁。實數(shù)類型 實數(shù)在C#中采用兩種數(shù)據(jù)類型來表示:單精度(float)和
14、雙精度(double)。它們的區(qū)別在于取值范圍和精度不同。單精度:取值范圍在正負(fù)1.5*10-45到3.4*1038之間,精度為七位。雙精度:取值范圍在正負(fù)5.0*10-324到1.7*10308之間,精度為15-16位。菌唐剁系昂發(fā)蘇瑣揀馮幽柔社賺錫面閉箕朋旅汝誨撐孕輕雀檸傀劍吻蕪立第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第19頁,共66頁。字符類型 字符包括數(shù)字字符、英文字母和表達(dá)符號等等,C#提供的字符類型按照國際標(biāo)準(zhǔn),采用Unicode字符集。一個Unicode的標(biāo)準(zhǔn)字符長度為16位,用它可以來表示世界上大多數(shù)語言。給一個變量賦值的語法為:char mychar=M;也可以直接通過十六
15、進(jìn)制或者Unicode賦值。char mychar=x0034;/mychar=4char mychar=u0039;/mychar=9纖篆恒渴快琺丑歉鹽農(nóng)徑恭督恃處曲交蟄貍輥及意謂蘊列腔德燒個做柴嬌第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第20頁,共66頁。枚舉類型 案例名稱:使用枚舉類型程序名稱:2-09.csusing System;enum WeekDay Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;class Test static void Main() WeekDay day; / 聲明WeekDay的實例da
16、y; day=WeekDay.Sunday; Console.WriteLine(day的值是0,day); 阜戊怔靴管洗駒獲啦弛鎂旋贍料謝閹言糜篇磐室畢剖高痊乞武氧籬對穆果第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第21頁,共66頁。引用類型 C#中的另一大數(shù)據(jù)類型是引用類型。“引用”的含義是:該類型的變量不直接存儲所包含的值,而是存儲所要存儲值的地址。C#中的引用類型有四種:類、數(shù)組、代表和接口。 俠卷茶喚哨蛀豪萊烽余忘爽特搓正戰(zhàn)花朔稱丘迅腐誤權(quán)軍劇彌詭矢懲裳巨第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第22頁,共66頁。類 類是面向?qū)ο缶幊痰幕締挝?,是一種包含數(shù)據(jù)成員、函數(shù)成員的數(shù)據(jù)結(jié)構(gòu)。
17、類的數(shù)據(jù)成員有變量、域和事件。函數(shù)成員包括方法、屬性、構(gòu)造函數(shù)和析構(gòu)函數(shù)等等。類和結(jié)構(gòu)同樣都包含了自己的成員,但他們之間最主要在于:類是引用類型,而結(jié)構(gòu)是值類型。類支持繼承機制,通過繼承,派生可以擴展類的數(shù)據(jù)成員和函數(shù)方法,進(jìn)而達(dá)到代碼重用和設(shè)計重用的目的。 櫻檔熔招者測緞姆仁碉滇萍拐聽癡貞柏俞游奏肌脂飄臺甫撬蝴業(yè)嘛芝扎瑯第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第23頁,共66頁。數(shù)組 案例名稱:使用數(shù)組類型程序名稱:2-10.csusing System;class test static void Main() int arr1=new int2; int arr2=new int1,2,
18、3; string arr3=six, is ,me; int, arr4=1,2,3,4; int, arr5=new int3,4; for(int i=0;iarr1.Length;i+) arr1i=i*i*i; Console.WriteLine(arr10=1,i,arr1i); for (int i=0;i4;i+) for(int j=0;j3;j+) arr5j,i=i*j; Console.WriteLine(arr50,1=2,j,i,arr5j,i); 獸順殺搓叮彝鴕斤證歷瘸唁羊秋棘附又矛飛臉邑鞘惕抄癰餒慈蓖邀介腔氓第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第24頁,共6
19、6頁。代表 程序名稱:使用代表程序名稱:2-11.csusing System;delegate int mydelegate(); class myclass public int InstMethod() Console.WriteLine(Call the InstMethod.); return 0; class Test static public void Main() myclass p=new myclass(); mydelegate d=new mydelegate(p.InstMethod); d(); /指代p.InstMethod 性潛倍捎塹常饒皚鮮榨融誹濘環(huán)赤茸從勸
20、鄂尺賽棒艦沂趾樁繳戀漿盛漲脈第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第25頁,共66頁。接口 接口描述了組件對外提供的服務(wù)。在組件和組件之間、組件和客戶之間都通過接口進(jìn)行交互。因此組件一旦發(fā)布,它只能通過預(yù)先定義的接口來處理合理的、一致的服務(wù)。刃淵物賊膠凜墻笛娥喉慫灌城笑龔?fù)茨沓晁┬ㄔ{去篆藥遞赴焊桌榜珊第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第26頁,共66頁。操作符與控制語句 表達(dá)式由操作數(shù)和操作符來構(gòu)造。表達(dá)式的操作符指示出對操作數(shù)采取哪種操作。操作符的例子包括+、-、*、/和new。操作數(shù)的例子包括文字、域、局部變量和表達(dá)式。有三種類型的操作符:一元操作符。一元操作符有一個操作數(shù)并且
21、或是使用前綴符號(例如-x)或是使用后綴符號(例如x+)。二元操作符。二元操作符有兩個操作數(shù)并且使用中間符號(例如x + y)。三元操作符。只有一個三元操作符?:。三元操作符有三個操作數(shù)并且使用中間符號 (c? x: y)。哦迪笨濫懂淪莎私祥搏杠豺熒硼欣蔥掠盆虱稗濤正汾墨凄品弦饞豆撒現(xiàn)秋第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第27頁,共66頁。算術(shù)操作符 案例名稱:使用算術(shù)操作符程序名稱:2-13.csusing System;enum Weekday Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;class test st
22、atic void Main() string mystr1 = 你好!; string mystr2 = 小劉; string mystr3 = mystr1 + mystr2; Weekday d1 = Weekday.Sunday; Weekday d2 = d1 + 3; Console.WriteLine(d1=0,d2=1,d1,d2); Console.WriteLine(mystr3); 柄丟腎賒穩(wěn)垮臺駛巧滑悟跳密繞弄盈冤址氯眠賓妹悼法薔劑凰舶茍叁擠摧第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第28頁,共66頁。賦值操作符 賦值就是給一個變量傳一個新的值。在C#中,賦值分為簡單賦
23、值和復(fù)合賦值兩大類。操作符“=”是簡單賦值操作符號。復(fù)合賦值操作符號包括+=、-=、*=、/=、%=、|=、/、=。歐洶瞪馴遮綢柯習(xí)烈寫嫌姨標(biāo)岸邢倦橡氧淖寨茂類鏡向了臍瘤搖柯橇蕾舅第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第29頁,共66頁。邏輯操作符 C#提供的邏輯運算符有三個,就是邏輯與(&)、邏輯或(|)和邏輯非(!)。其中,邏輯與和邏輯或是二元操作符,要求有兩個操作數(shù);而邏輯非是一元操作符,只要求一個操作數(shù)。杭燦鵬蜀寢謄當(dāng)錯篆下兆倔鉆陌漬王消困蹈秸香烽范喲洪競小尼詹柒鞠引第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第30頁,共66頁。分支語句分支語句依據(jù)一個控制表達(dá)式的值,從一系列可能被執(zhí)行
24、的語句選擇出要執(zhí)行的語句。包括兩種語句:if語句和switch語句。阻寥露源檬鉛芝朋嫡糜蹈鐳另貶攙瓦抗拯襲學(xué)奴因牲湘府容鵬蟲筐宗范頓第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第31頁,共66頁。使用if語句案例名稱:使用if語句程序名稱:2-14.csusing System;class Hello public static void Main() Console.Write(請輸入你的名字:); string str_userName=Console.ReadLine(); if(str_userName=six) Console.WriteLine(您好!0,哎呀,是您啊! ,str_us
25、erName); else Console.WriteLine(0是哪棵蔥? ,str_userName); 灶尋韋舒戲貧摳隨紙緣固酬鈴蝶溯方汛頤褲碌躥輪良伎廟艇禽退艇停魚帛第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第32頁,共66頁。switch語句 案例名稱:使用switch語句程序名稱:2-15.csusing System;class Sample public static void Main() int myage=10; string mystr; switch (myage) case 10: mystr=還是小孩!; break; case 25: mystr=可以結(jié)婚了!;
26、break; default: mystr=不對吧!你到底多大!; break; Console.WriteLine(小子,你0,mystr); 哺堪涂靖硯竄紫疆另麥熒筒縷瓤濁計瓶某援潛灤劊努碌拓簽貢胡某塘踏呵第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第33頁,共66頁。循環(huán)語句 在 C# 中可使用循環(huán)語句有4種格式:do-while: 當(dāng)(或直到)條件為 True 時循環(huán)。 while: 當(dāng)條件為 True 時循環(huán)。 for: 指定循環(huán)次數(shù),使用計數(shù)器重復(fù)運行語句。 for each: 對于集合中的每項或數(shù)組中的每個元素,重復(fù)執(zhí)行??洳叩K夠辜榔語柿掌橋訊賭倉雖煉氯詭捻彪綱揪淫務(wù)冊怕瀾?zhàn)s飄漆仁卵
27、搖第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第34頁,共66頁。do-while循環(huán) 案例名稱:do-while循環(huán)程序名稱:2-16.csusing System;class test public static void Main() int sum=0; /初始值設(shè)置為0 int i=1; /加數(shù)初始值為1 do sum+=i; i+; while (i=100); Console.WriteLine(從0到100的和是0,sum); 瑤鼎今劃俘幣康卻摸法邪桌好郝逢娥嗎撮恕踞埠刺絢衛(wèi)才仗疥憤絆宣蛆漲第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第35頁,共66頁。While循環(huán) 案例名稱:使用w
28、hile語句程序名稱:2-17.csusing System;class Sample public static void Main() int sum=0; int i=1; while (i=100) sum+=i; i+; Console.WriteLine(從0到100的和是0,sum); 巡秤答奈上壩毖牡灑混硯泥傷誤放超戒賒侄傅宜酗蕪認(rèn)鉀距僧騙似愚齒桓第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第36頁,共66頁。For循環(huán) 案例名稱:使用for語句程序名稱:2-18.csusing System;class test public static void Main() int sum
29、 = 0; for(int i= 1;i 100) break; sum += j; j+; Console.WriteLine(從0到100的和是0,sum); 吏咐玉耗帥漳余札壓勤比鹵迪子街檔噸莉祿人燼腫覆骸憫蓄冊羹潰紡俞杯第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第37頁,共66頁。跳轉(zhuǎn)語句 跳轉(zhuǎn)語句進(jìn)行無條件跳轉(zhuǎn)。常用的跳轉(zhuǎn)語句:break語句和continue語句。 珍婦攻旁澀亥留助裹呈途滴舊氯撤戚診氏助紊競幅臘埔卜釣榮口棋諸謙慮第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第38頁,共66頁。break語句break語句跳出包含它的switch,while,do,for,或for-each
30、語句。假如break不是在switch,while,do,for或者for-each語句的塊中,將會發(fā)生編譯錯誤。 案例名稱:使用break語句程序名稱:2-19.csusing System;class test public static void Main() int sum=0; int i=1; while (true) sum+=i; i+; if (i100) break; / 如果i大于100,則退出循環(huán) Console.WriteLine(從0到100的和是0,sum); 棲促雇旨皋餐蕩膊喻攫尺繃瀝輾佐迅虛筷產(chǎn)蛔厚塌鑷妹書鍺挖儉氰洞沛緩第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)
31、第39頁,共66頁。continue語句 案例名稱:使用continue語句程序名稱:2-20.csusing System;class test public static void Main() for(int n=100;n=200;n+) if(n%3=0) continue; Console.WriteLine(從100到200的不能被3整除的數(shù)是0,n); 蓄拭屑帶申欠磚幸普塹莊拇卵方熄庇迫點韓潑散丙抱韻折升定晦妓約搭翟第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第40頁,共66頁。異常處理 C#的異??赡苡蓛煞N方式導(dǎo)致:throw語句無條件拋出異常。C#語句和表達(dá)式執(zhí)行過程中激發(fā)了某
32、個異常的條件,使得操作無法正常結(jié)束,從而引發(fā)異常。例如整數(shù)除法操作分母為零時將拋出一個異常。異常由try語句來處理,try語句提供了一種機制來捕捉執(zhí)行過程中發(fā)生的異常。Try語句有3種基本格式:try-catchtry-finallytry-catch-finally違蘇脂核暗泣叢放柔景隸客低寬飯侯游更苛蓬境佐慕砰河飼蔓淬蝕牢退虹第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第41頁,共66頁。try-catch結(jié)構(gòu) 案例名稱:使用try-catch語句程序名稱:2-21.csusing System;class Sample public static void Main(string args)
33、 long factorial=1; long num=Int64.Parse(args0); try checked / 計算數(shù)num的階乘 for (long cur=1;cur=num;cur+) factorial*=cur; catch (OverflowException oe) Console.WriteLine(計算0的階乘時引發(fā)溢出異常,num); Console.WriteLine(0,oe.Message); return; Console.WriteLine(0的階乘是1,num,factorial); 晝齒匠骯隊卸菜誅折呸起絕拘及榨出輾晝鉻璃派壺遏傻關(guān)奴淤帆堪猴語姜第
34、2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第42頁,共66頁。try-finally結(jié)構(gòu) 案例名稱:使用try-finally語句程序名稱:2-22.csusing System;public class Sample public static void Main() try Console.WriteLine(執(zhí)行try子句!); goto leave; / 跳轉(zhuǎn)到leave標(biāo)簽 finally Console.WriteLine(執(zhí)行finally子句!); leave: Console.WriteLine(執(zhí)行l(wèi)eave標(biāo)簽!); 劉活玫去肺淡巧撾藥樟凝傲柴睛蓉豐瘡霉窮廷中勻隴披儈詛札翹愈
35、污藝?yán)俚?章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第43頁,共66頁。try-catch-finally結(jié)構(gòu) 案例名稱:使用try-catch-finally語句程序名稱:2-23.csusing System;class Sample public static void Main() try throw(new ArgumentNullException(); / 引發(fā)異常 catch(ArgumentNullException e) Console.WriteLine(Exception:0,e.Message); finally Console.WriteLine(執(zhí)行finally子句)
36、; 際比昭嬰決俊操英計曙饒犀??葶K肚塵矗矮膀贈窿榮炕茬煌迂昨述吟搗椎第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第44頁,共66頁。C#面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ) 與傳統(tǒng)的面向過程的編程方法相比,面向?qū)ο缶幊谭椒ㄓ?個優(yōu)點:(1)程序的可維護(hù)性好;(2)程序容易修改;(3)對象可以使用多次,可重用性好。 吸澡民按快者貞檸瑟墻嗅奈汲驚供瓦值館受系桐暢士尊栗護(hù)樞括率良閩只第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第45頁,共66頁。類的定義 class Aclass B void f() A a=new A(); 補啼膨弧悸奇僑玄竿肆嗅盎邪販廢惋淀逼裙疽然徒催盲仁常崗媚荷悅衰徐第2章C程序設(shè)計基礎(chǔ)第2章C程序
37、設(shè)計基礎(chǔ)第46頁,共66頁。繼承 為了提高軟件模塊的可重用性和可擴充性,以便提高軟件的開發(fā)效率,希望能夠利用前人或自己以前的開發(fā)成果,任何面向?qū)ο蟮某绦蛟O(shè)計語言都能夠提供兩個重要的特性:繼承性(inheritance)多態(tài)性(polymorphism)。 射汝咳窺窗脫肘懂水如棱裳捷擋君閻饅似層剎箔預(yù)欲勒鴻嗽璃盔暢絡(luò)徊黔第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第47頁,共66頁。使用繼承案例名稱:使用繼承程序名稱:2-24.csusing System;class BaseA public void FuncA() System.Console.WriteLine( Funciton A );
38、class DerivedA : BaseA public void FuncB() System.Console.WriteLine( Function B ); class Tester public static void Main( string args ) DerivedA aDerived = new DerivedA(); aDerived.FuncA(); aDerived.FuncB(); 槳保拌滁蒙嘶縣擅棺載患登噴鍵乎澤抨體耘判算炳揩迪漏你骸絢敗煤陋藤第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第48頁,共66頁。類的訪問修飾符 案例名稱:類的訪問修飾符程序名稱:2-25.c
39、susing System;class Class1 public string s; / 公有成員 protected int i; / 保護(hù)成員 private double d; / 私有成員 public void F1() s=Welcome six!; / 正確,允許訪問自身成員 i=100; / 正確,允許訪問自身成員 d=18.68; / 正確,允許訪問自身成員澎廷吁溜比迂鞏比軟陌砍紉鍺袒雍滄茲輪粳日舌損錘象權(quán)受欽咐反駁腐砧第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第49頁,共66頁。構(gòu)造函數(shù)和析構(gòu)函數(shù) 構(gòu)造函數(shù)用于執(zhí)行類的實例的初始化。每個類都有構(gòu)造函數(shù),即使沒有聲明它,編譯器
40、也會自動提供一個默認(rèn)的構(gòu)造函數(shù)。在訪問一個類的時候,系統(tǒng)將最先執(zhí)行構(gòu)造函數(shù)中的語句。使用構(gòu)造函數(shù)請注意以下幾個問題:一個類的構(gòu)造函數(shù)通常與類名相同構(gòu)造函數(shù)不聲明返回類型。構(gòu)造函數(shù)總是public類型的。揪慶仕蔽跟陪蔫棱宇隧熱濁鞏堪才疚亡秒繩腐輩淋斃猩廈僥鉚耳及埔攙令第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第50頁,共66頁。案例名稱:構(gòu)造函數(shù)和析構(gòu)函數(shù)程序名稱:2-26.csusing System;class Desk/構(gòu)造函數(shù)和類名一樣,析構(gòu)函數(shù)前面加 public Desk()Console.WriteLine(Constructing Desk);weight=6;high=3;wid
41、th=7;length=10;Console.WriteLine(0,1,2,3,weight,high,width,length);Desk()Console.WriteLine(Destructing Desk );protected int weight;protected int high;protected int width;protected int length;public static void Main()Desk aa=new Desk();Console.WriteLine(back in main() ); ;去字慧蟬紉先琢厘賤鋸昌百陀夢拎朝鎢餅諾蛋際晰界助物脯膩污
42、蹦溢抵饅第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第51頁,共66頁。this關(guān)鍵字 案例名稱:使用this關(guān)鍵字程序名稱:2-27.csusing System;public class Employee public string name; / 員工姓名 public decimal salary; / 員工薪水 / 構(gòu)造函數(shù) public Employee(string name, decimal salary) / 用this關(guān)鍵字給正在構(gòu)造的對象的name和salary賦值 = name; this.salary = salary; / 顯示員工姓名及薪水 pub
43、lic void DiaplayEmployee() Console.WriteLine(姓名:0,name); Console.WriteLine(薪水:0元,salary); / 用this方法將當(dāng)前對象傳給Tax.CalcTax()方法 Console.WriteLine(個人所得稅:0元,Tax.CalcTax(this); public class Tax public static decimal CalcTax(Employee E) return (0.14m*(E.salary-800.0m); public class Sample public static void M
44、ain() / 聲明類Employee的實例e Employee e = new Employee(小劉,4123.6m); e.DiaplayEmployee(); / 顯示員工姓名和薪水 蘿逝繳藩寫口弗埂茄拓滿桑亞債酒版諸娩持衫色冀警例雕鈍洋孿蹤坯氓頹第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第52頁,共66頁。關(guān)鍵字static 案例名稱:使用static關(guān)鍵字程序名稱:2-28.csusing System;public class Person private int id;public static int total = 0;public Person() total+; id =
45、 total;public class OtherClass public static void Main() Person.total = 100;Console.WriteLine (Person.total);Person c = new Person();Console.WriteLine (Person.total);份膳樸浴悠致閃梳苞把蠱營盡淌般炎覺翠蘑臨瞻退元逸燭雜鋇馮馱閉型妝第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第53頁,共66頁。案例名稱:使用靜態(tài)方法程序名稱:2-29.csusing System;public class Person private int id;p
46、rivate static int total = 0;public static int getTotalPerson() return total;public Person() total+;id = total;public class TestPerson public static void Main() Console.WriteLine (Person.getTotalPerson();Person p1 = new Person();Console.WriteLine (Person.getTotalPerson();頗租國二娜千適犯撣茂暇暖炭蛀罪咸吩佑傳愧索佰色到鵑梨鉆糠揚
47、磅壯敗第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第54頁,共66頁。C#面向?qū)ο蟾呒壧匦?和其他的面向?qū)ο笳Z言一樣,C#支持多態(tài)、虛方法、函數(shù)的重載等。除此之外,C#還提供一種特殊的數(shù)據(jù)形態(tài)“裝箱” 澀熒泡丹侍買圾內(nèi)憤鵲氓侶掇袒逞拔閱紫耿武擅秤疽蒸記炭汝敦捎矚震債第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第55頁,共66頁。多態(tài)(Polymorphism) 在C#中,多態(tài)性的定義是:“同一操作作用于不同的類的實例,不同的類將進(jìn)行不同的解釋,最后產(chǎn)生不同的執(zhí)行結(jié)果”。C#支持兩種類型的多態(tài)性。編譯時的多態(tài)性:編譯時的多態(tài)是通過重載來實現(xiàn)的。對于非虛的成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型
48、等信息決定實現(xiàn)何種操作。運行時的多態(tài)性:運行時的多態(tài)性是直到系統(tǒng)運行時,才根據(jù)實際情況決定實現(xiàn)何種操作。C#中,運行時的多態(tài)性通過虛方法實現(xiàn)。編譯時的多態(tài)性提供了運行速度快的特點,而運行時的多態(tài)性則帶來了高度靈活和抽象的特點?;\睜政坎賊謙著棕填肘銹贏鈣裔柴想龍趁扦湛把楞弗射爬藩臃芥挫嗽粹鄲第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第56頁,共66頁。虛方法 案例名稱:使用虛方法程序名稱:2-30.csusing System;class Teststatic void Main(string args)Base b = new Base();b.Draw();Derived d = new De
49、rived();d.Draw();d.Fill();Base obj = new Derived();obj.Fill();obj.Draw();class Basepublic void Fill()System.Console.WriteLine(Base.Fill);public virtual void Draw() System.Console.WriteLine(Base.Draw);class Derived : Basepublic override void Draw()System.Console.WriteLine(Derived.Draw);public new voi
50、d Fill()System.Console.WriteLine(Derived.Fill);疇省衍邊榆始槐瞻委點梳猿讓宏狡縛苛惹扣遇佳垢皮柳乙消湃殼油客靖嘉第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第57頁,共66頁。抽象類 案例名稱:使用抽象類程序名稱:2-31.csusing System;abstract public class Window public Window(int top, int left) this.top = top; this.left = left; abstract public void DrawWindow( ); protected int top; p
51、rotected int left;public class ListBox : Window public ListBox( int top, int left, string contents): base(top, left) /調(diào)用基類的構(gòu)造函數(shù) listBoxContents = contents; public override void DrawWindow( ) Console.WriteLine (Writing string to the listbox: 0, listBoxContents); private string listBoxContents; public
52、 class Tester static void Main( ) Window winArray = new Window3; winArray0 = new ListBox(1,2,First List Box); winArray1 = new ListBox(3,4,Second List Box); for (int i = 0;i 2; i+) winArrayi.DrawWindow( ); 亮扎埔襲環(huán)蠟邏蓉鑰灶雀消執(zhí)孽骨鈕風(fēng)卸聰坷蛙私胺侄異扭較冶棄桌棒則第2章C程序設(shè)計基礎(chǔ)第2章C程序設(shè)計基礎(chǔ)第58頁,共66頁。函數(shù)重載 案例名稱:重載普通函數(shù)程序名稱:2-32.csusing
53、 System;class Overload public void Func() System.Console.WriteLine( Func() ); public void Func( int x, int y ) System.Console.WriteLine( Func( int x, int y ) ); public void Func( long x, long y ) System.Console.WriteLine( Func( long x, long y ) ); public static void Main( string args ) Overload myOverload = new Overload(); myOverload.Func(); myOverload.Func(1,1); myOverload.Func(1L, 1L); / 會調(diào)用哪個重載函數(shù)呢? myOverload.Func(1L,1); 嗣帚啞律兆滁莆珍杭鄙倚題虞拾模金添
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石灰礦山資源開采與利用合同3篇
- 推廣計劃的擬訂、執(zhí)行和評估
- 2025版國際商務(wù)合作合同模板匯編3篇
- 二零二五年度現(xiàn)代中式木工裝飾工程合同4篇
- 二零二五版高速公路500KVA箱變維護(hù)保養(yǎng)合同2篇
- 堅果種植的社會經(jīng)濟(jì)效益考核試卷
- 《高血壓的護(hù)理常規(guī)》課件
- 2025版農(nóng)產(chǎn)品深加工項目貸款合同范本4篇
- 艾滋病HEALTH87課件講解
- 2025年加盟代理分銷商合同
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會課件
- 2025版高考物理復(fù)習(xí)知識清單
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計劃
- 2024年度工作總結(jié)與計劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測試探針行業(yè)市場研究報告2024
- 反走私課件完整版本
- 畢業(yè)論文-山東省農(nóng)產(chǎn)品出口貿(mào)易的現(xiàn)狀及對策研究
- 音樂思政課特色課程設(shè)計
- 2023年四川省樂山市中考數(shù)學(xué)試卷
評論
0/150
提交評論