版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章C#語言程序設(shè)計基礎(chǔ)
2內(nèi)容提要本章主要分析C#的語法,C#作為.NET的原生語言,功能非常強大。作為ASP.NET的編程基礎(chǔ),主要分析C#的變量、常量、控制語句、C#類的基本使用方法、C#的異常處理和C#語言面向?qū)ο蟮母呒壧匦浴#概述C#是微軟公司專門為.NET量身定做的編程語言,它與.NET有著密不可分的關(guān)系。C#的類型就是.NET框架所提供的類型,C#本身并無類庫,而是直接使用.NET框架所提供的類庫。另外,類型安全檢查、結(jié)構(gòu)化異常處理也都是交給CLR處理的。因此,C#是最適合開發(fā).NET應(yīng)用的編程語言。C#的特點C#不僅具有C++的強大功能,而且具有VisualBasic簡單易用的特性。C#的語法與C++基本相同。如果以前對C++非常熟悉的話,學(xué)習(xí)C#則是一件非常容易的事情。默認情況下,C#代碼在.NET框架提供的受控環(huán)境下運行,不允許直接操作內(nèi)存。它帶來最大的變化是C#沒有了C和C++中的指針。與此相關(guān)的,那些在C++中被大量使用的指針操作符已經(jīng)不再出現(xiàn)。C#只支持一個“.”C#程序結(jié)構(gòu)案例名稱:第一個C#程序程序名稱:2-01.cs
usingSystem;classHello{publicstaticvoidMain(){Console.WriteLine("您好!");}}C#編譯器.NETFrameworkSDK內(nèi)置了C#編譯器“csc.exe(CSharpCompiler)”,該文件在“\WINNT\Microsoft.NET\Framework\v版本號”目錄下。如果不能執(zhí)行該命令,需要將該目錄添加到操作系統(tǒng)的PATH變量中??梢栽诿畲翱诰幾gC#文件,假如要編譯名為1-01.cs的C#文件。命令行的語法為:csc2-01.cs不用using導(dǎo)入名字空間案例名稱:不用using導(dǎo)入名字空間程序名稱:2-02.cs
classHello{publicstaticvoidMain(){System.Console.WriteLine("您好!");}}程序的輸入和輸出案例名稱:利用ReadLine()讀入數(shù)據(jù)程序名稱:2-03.cs
usingSystem;classHello{publicstaticvoidMain(){Console.Write(“請輸入你的名字:”);stringstr_bookName=Console.ReadLine();Console.WriteLine("您好!{0}",str_bookName);}}命令行參數(shù)案例名稱:使用命令行參數(shù)程序名稱:2-04.cs
usingSystem;publicclassHello{publicstaticvoidMain(string[]args){Console.WriteLine("你共有{0}個朋友",args.Length);Console.WriteLine("你的朋友列表為:");for(inti=0;i<args.Length;i++){Console.WriteLine("Arg[{0}]=[{1}]",i,args[i]);
}}}C#注釋案例名稱:使用注釋程序名稱:2-05.cs
usingSystem;classHello{staticvoidMain(){/*聲明一個DateTime變量t并將當(dāng)前日期賦給t*/DateTimet=DateTime.Today;stringstr_Time;//聲明一個字符串變量str_Timestr_Time=t.ToLongDateString();Console.WriteLine("當(dāng)前日期是:{0}",str_Time);}}C#的數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)C#的數(shù)據(jù)類類型分為為值類型型(ValueType)和引用用類型((ReferenceType)兩大類類。值類型包包括簡單單類型((SimpleType)、結(jié)構(gòu)構(gòu)類型((StructType)和枚舉舉類型((EnumType)3種。引用類類型包括類類類型(ClassType)、數(shù)組類類型(ArrayType)和代表類類型(DelegateType)。變量和常量量C#是大小寫敏敏感的,即即大寫和小小寫字母認認為是不同同的字母。。例如變量量名something,Something,SOMETHING都是不同的的名字。命名變量名名要遵守如如下的規(guī)則則:不能是C#關(guān)鍵字。第一個字符符必須是字字母或下劃劃線。不要太長,,一般不超超過31個字符為宜宜。不能以數(shù)字字開頭中間不能有有空格變量名中不不能包含““.;,”+-”之類的特殊殊符號。實實際上,變變量名中除除了能使用用26個英文大小小寫字母和和數(shù)字外,,只能使用用下劃線““_”。變量名不要要與C++中的庫函數(shù)數(shù)名、類名名和對象名名相同。使用常量案例名稱::使用常量量程序名稱::2-06.csusingSystem;classHello{publicconstdoublePI=3.14159265;staticvoidMain(){Console.WriteLine(“圓周率PI的值為{0}”,PI);}}值類型值類型,也也稱為簡單單類型,是是直接由一一系列元素素構(gòu)成的數(shù)數(shù)據(jù)類型。。C#語言中中提供了一一組已經(jīng)定定義好了簡簡單類型。??梢苑譃檎愋?、、布爾類型型、字符類類型和實數(shù)數(shù)類型。整整類型整整類型的的變量的值值為整數(shù)。。計算機的的存儲單元元是有限的的,所以計計算機語言言提供的整整數(shù)類型的的值總是在在一定的范范圍之內(nèi)。。C#中有九九種整數(shù)類類型,這些些整數(shù)類型型在數(shù)學(xué)上上的表示以以及在計算算機中的取取值范圍如如表2-1所示。整整類型整整類型特征取值類型sbyte有符號8位整數(shù)-128-127byte無符號8位整數(shù)0-255short有符號16位整數(shù)-32768-32767ushort無符號16位整數(shù)0-65535int有符號32位整數(shù)-2147483648-2147483647uint無符號32位整數(shù)0-4294967295long有符號64位整數(shù)-9223372036854775808-9223372036854775807ulong無符號64位整數(shù)0-18446744073709551615使用整整類類型案例名稱::使用整整整類型程序名稱::2-07.csusingSystem;classHello{publicstaticvoidMain(){shortx=32766;x++;Console.WriteLine(x);x++;Console.WriteLine(x);}}布爾類型布爾類型是是用來表示示“真”和和“假”的的。布爾類類型表示的的邏輯變量量只有兩種種取值。在在C#中,分別采采用true和false兩個值來表表示。在C語言中,用用0來表示“假假”,其他他任何非零零的值表示示真。在C#中,布爾型型變量只能能是true或者false。實數(shù)類型實數(shù)在C#中采用兩種種數(shù)據(jù)類型型來表示::單精度((float)和雙精度度(double)。它們的的區(qū)別在于于取值范圍圍和精度不不同。單精度:取取值范圍在在正負1.5*10-45到3.4*1038之間,精度度為七位。。雙精度:取取值范圍在在正負5.0*10-324到1.7*10308之間,精度度為15-16位。字符類型字符包括數(shù)數(shù)字字符、、英文字母母和表達符符號等等,,C#提供的字符符類型按照照國際標(biāo)準(zhǔn)準(zhǔn),采用Unicode字符集。一一個Unicode的標(biāo)準(zhǔn)字符符長度為16位,用它可可以來表示示世界上大大多數(shù)語言言。給一個個變量賦值值的語法為為:charmychar='M';也可以直接接通過十六六進制或者者Unicode賦值。charmychar='\x0034';//mychar='4'charmychar='\u0039';//mychar='9'枚舉類型案例名稱::使用枚舉舉類型程序名稱::2-09.csusingSystem;enumWeekDay{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};classTest{staticvoidMain(){WeekDayday;//聲明WeekDay的實例day;day=WeekDay.Sunday;Console.WriteLine("day的值是{0}",day);}}引用類型C#中的另另一大數(shù)據(jù)據(jù)類型是引引用類型。?!耙谩薄钡暮x是是:該類型型的變量不不直接存儲儲所包含的的值,而是是存儲所要要存儲值的的地址。C#中的引引用類型有有四種:類類、數(shù)組、、代表和接接口。類類是面向?qū)ο缶幊痰牡幕締挝晃?,是一種種包含數(shù)據(jù)據(jù)成員、函函數(shù)成員的的數(shù)據(jù)結(jié)構(gòu)構(gòu)。類的數(shù)數(shù)據(jù)成員有有變量、域域和事件。。函數(shù)成員員包括方法法、屬性、、構(gòu)造函數(shù)數(shù)和析構(gòu)函函數(shù)等等。。類和結(jié)構(gòu)構(gòu)同樣都包包含了自己己的成員,,但他們之之間最主要要在于:類類是引用類類型,而結(jié)結(jié)構(gòu)是值類類型。類支持繼承承機制,通通過繼承,,派生可以以擴展類的的數(shù)據(jù)成員員和函數(shù)方方法,進而而達到代碼碼重用和設(shè)設(shè)計重用的的目的。數(shù)組案例名稱::使用數(shù)組組類型程序名稱::2-10.csusingSystem;classtest{staticvoidMain(){int[]arr1=newint[2];int[]arr2=newint[]{1,2,3};string[]arr3={"six","is","me"};int[,]arr4={{1,2},{3,4}};int[,]arr5=newint[3,4];for(inti=0;i<arr1.Length;i++){arr1[i]=i*i*i;Console.WriteLine("arr1[{0}]={1}",i,arr1[i]);}for(inti=0;i<4;i++){for(intj=0;j<3;j++){arr5[j,i]=i*j;Console.WriteLine("arr5[{0},{1}]={2}",j,i,arr5[j,i]);}}}}代表程序名稱::使用代表表程序名稱::2-11.csusingSystem;delegateintmydelegate();classmyclass{publicintInstMethod(){Console.WriteLine("CalltheInstMethod.");return0;}}classTest{staticpublicvoidMain(){myclassp=newmyclass();mydelegated=newmydelegate(p.InstMethod);d();//指代p.InstMethod}}接口接口描述了組組件對外提供供的服務(wù)。在在組件和組件件之間、組件件和客戶之間間都通過接口口進行交互。。因此組件一旦旦發(fā)布,它只只能通過預(yù)先先定義的接口口來處理合理理的、一致的的服務(wù)。操作符與控制制語句表達式由操作作數(shù)和操作符符來構(gòu)造。表表達式的操作作符指示出對對操作數(shù)采取取哪種操作。。操作符的例例子包括+、-、*、/和new。操作數(shù)的例例子包括文字字、域、局部部變量和表達達式。有三種類型的的操作符:一元操作符。。一元操作符符有一個操作作數(shù)并且或是是使用前綴符符號(例如--x)或是使用后后綴符號(例例如x++)。二元操作符。。二元操作符符有兩個操作作數(shù)并且使用用中間符號((例如x+y)。三元操作符。。只有一個三三元操作符??:。三元操操作符有三個個操作數(shù)并且且使用中間符符號(c?x:y)。算術(shù)操作符案例名稱:使使用算術(shù)操作作符程序名稱:2-13.csusingSystem;enumWeekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};classtest{staticvoidMain(){stringmystr1="你好!";stringmystr2="小劉";stringmystr3=mystr1+mystr2;Weekdayd1=Weekday.Sunday;Weekdayd2=d1+3;Console.WriteLine("d1={0},d2={1}",d1,d2);Console.WriteLine(mystr3);}}賦值操作符賦值就是給一一個變量傳一一個新的值。。在C#中,,賦值分為簡簡單賦值和復(fù)復(fù)合賦值兩大大類。操作符“=””是簡單賦值值操作符號。。復(fù)合賦值操操作符號包括括+=、-=、*=、/=、%=、、|=、^/、<<=、、>>=。邏輯操作符C#提供的邏邏輯運算符有有三個,就是是邏輯與(&&)、邏輯輯或(||))和邏輯非((!)。其中,邏輯與與和邏輯或是是二元操作符符,要求有兩兩個操作數(shù);;而邏輯非是是一元操作符符,只要求一一個操作數(shù)。。分支語句分支語句依據(jù)據(jù)一個控制表表達式的值,,從一系列可可能被執(zhí)行的的語句選擇出出要執(zhí)行的語語句。包括兩種語句句:if語句句和switch語句。。使用if語句案例名稱:使使用if語句程序名稱:2-14.csusingSystem;classHello{publicstaticvoidMain(){Console.Write("請輸入你的名名字:");stringstr_userName=Console.ReadLine();if(str_userName=="six"){Console.WriteLine("您好!{0},哎呀,是您啊啊!",str_userName);}else{Console.WriteLine("{0}是哪棵蔥?",str_userName);}}}switch語句案例名稱:使使用switch語句程序名稱:2-15.csusingSystem;classSample{publicstaticvoidMain(){intmyage=10;stringmystr;switch(myage){case10:mystr="還是小孩!";break;case25:mystr="可以結(jié)婚了!";break;default:mystr="不對吧!你到到底多大!";break;}Console.WriteLine("小子,你{0}",mystr);}}循環(huán)語句在C#中可使用循環(huán)環(huán)語句有4種格式:do--while:當(dāng)(或直直到)條件為為True時循環(huán)。while:當(dāng)條件為為True時循環(huán)。for:指定循環(huán)環(huán)次數(shù),使用用計數(shù)器重復(fù)復(fù)運行語句。。foreach:對于集合合中的每項或或數(shù)組中的每每個元素,重重復(fù)執(zhí)行。do-while循環(huán)案例名稱:do-while循環(huán)程序名名稱::2-16.csusingSystem;classtest{publicstaticvoidMain(){intsum=0;//初始值值設(shè)置置為0inti=1;//加數(shù)初初始值值為1do{sum+=i;i++;}while(i<=100);Console.WriteLine("從0到100的和是是{0}",sum);}}While循環(huán)環(huán)案例名名稱::使用用while語句程序名名稱::2-17.csusingSystem;classSample{publicstaticvoidMain(){intsum=0;inti=1;while(i<=100){sum+=i;i++;}Console.WriteLine("從0到100的和和是是{0}",sum);}}For循循環(huán)環(huán)案例例名名稱稱::使使用用for語句句程序序名名稱稱::2-18.csusingSystem;classtest{publicstaticvoidMain(){intsum=0;for(inti=1;i<=100;i++){sum+=i;}Console.WriteLine("從0到100的和和是是{0}\n",sum);sum=0;intj=1;for(;;){if(j>100)break;sum+=j;j++;}Console.WriteLine("從0到100的和和是是{0}",sum);}}跳轉(zhuǎn)轉(zhuǎn)語語句句跳轉(zhuǎn)轉(zhuǎn)語語句句進進行行無無條條件件跳跳轉(zhuǎn)轉(zhuǎn)。。常用用的的跳跳轉(zhuǎn)轉(zhuǎn)語語句句::break語語句句和和continue語語句句。。break語語句句break語句句跳跳出出包包含含它它的的switch,while,do,for,或或for-each語句句。。假假如如break不是是在在switch,while,do,for或者者for-each語句句的的塊塊中中,,將將會會發(fā)發(fā)生生編編譯譯錯錯誤誤。。案例例名名稱稱::使使用用break語句句程序序名名稱稱::2-19.csusingSystem;classtest{publicstaticvoidMain(){intsum=0;inti=1;while(true){sum+=i;i++;if(i>100)break;//如果果i大于于100,則退出循循環(huán)}Console.WriteLine("從0到100的和是{0}",sum);}}continue語句句案例名稱稱:使用用continue語句程序名稱稱:2-20.csusingSystem;classtest{publicstaticvoidMain(){for(intn=100;n<=200;n++){if(n%3==0)continue;Console.WriteLine("從100到200的不能被被3整除的數(shù)數(shù)是{0}",n);}}}異常處理理C#的異??煽赡苡蓛蓛煞N方式式導(dǎo)致::throw語句無條條件拋出出異常。。C#語句和和表達達式執(zhí)執(zhí)行過過程中中激發(fā)發(fā)了某某個異異常的的條件件,使使得操操作無無法正正常結(jié)結(jié)束,,從而而引發(fā)發(fā)異常常。例例如整整數(shù)除除法操操作分分母為為零時時將拋拋出一一個異異常。。異常由由try語句來來處理理,try語句提提供了了一種種機制制來捕捕捉執(zhí)執(zhí)行過過程中中發(fā)生生的異異常。。Try語句有有3種基本本格式式:try-catchtry-finallytry-catch-finallytry-catch結(jié)構(gòu)構(gòu)案例名名稱::使用用try-catch語句程序名名稱::2-21.csusingSystem;classSample{publicstaticvoidMain(string[]args){longfactorial=1;longnum=Int64.Parse(args[0]);try{checked{//計算數(shù)數(shù)num的階乘乘for(longcur=1;cur<=num;cur++)factorial*=cur;}}catch(OverflowExceptionoe){Console.WriteLine("計算{0}的階乘乘時引引發(fā)溢溢出異異常",num);Console.WriteLine("{0}",oe.Message);return;}Console.WriteLine("{0}的階乘乘是{1}",num,factorial);}}try-finally結(jié)構(gòu)構(gòu)案例名名稱::使用用try-finally語句程序名名稱::2-22.csusingSystem;publicclassSample{publicstaticvoidMain(){try{Console.WriteLine("執(zhí)行try子句!");gotoleave;//跳轉(zhuǎn)到到leave標(biāo)簽}finally{Console.WriteLine("執(zhí)行finally子句!");}leave:Console.WriteLine("執(zhí)行l(wèi)eave標(biāo)簽!");}}try-catch-finally結(jié)構(gòu)案例名稱::使用try-catch-finally語句程序名稱::2-23.csusingSystem;classSample{publicstaticvoidMain(){try{throw(newArgumentNullException());//引發(fā)異常}catch(ArgumentNullExceptione){Console.WriteLine("Exception:{0}",e.Message);}finally{Console.WriteLine("執(zhí)行finally子句");}}}C#面向?qū)ο蟪绦蛟O(shè)設(shè)計基礎(chǔ)與傳統(tǒng)的面面向過程的的編程方法法相比,面面向?qū)ο缶幘幊谭椒ㄓ杏?個優(yōu)點:(1)程序的可可維護性好好;(2)程序容易易修改;((3)對象可以以使用多次次,可重用用性好。類的定義classA{}classB{voidf(){Aa=newA();}}繼承為了提高軟軟件模塊的的可重用性性和可擴充充性,以便便提高軟件件的開發(fā)效效率,希望望能夠利用用前人或自自己以前的的開發(fā)成果果,任何面面向?qū)ο蟮牡某绦蛟O(shè)計計語言都能能夠提供兩兩個重要的的特性:繼承性(inheritance)多態(tài)性(polymorphism)。使用繼承案例名稱::使用繼承承程序名稱::2-24.csusingSystem;classBaseA{publicvoidFuncA(){System.Console.WriteLine("FuncitonA");}}classDerivedA:BaseA{publicvoidFuncB(){System.Console.WriteLine("FunctionB");}}classTester{publicstaticvoidMain(string[]args){DerivedAaDerived=newDerivedA();aDerived.FuncA();aDerived.FuncB();}}類的訪問修修飾符案例名稱::類的訪問問修飾符程序名稱::2-25.csusingSystem;classClass1{publicstrings;//公有成員protectedinti;//保護成員privatedoubled;//私有成員publicvoidF1(){s="Welcomesix!";//正確,允許許訪問自身身成員i=100;//正確,允許許訪問自身身成員d=18.68;//正確,允許許訪問自身身成員}構(gòu)造函數(shù)和和析構(gòu)函數(shù)數(shù)構(gòu)造函數(shù)用用于執(zhí)行類類的實例的的初始化。。每個類都都有構(gòu)造函函數(shù),即使使沒有聲明明它,編譯譯器也會自自動提供一一個默認的的構(gòu)造函數(shù)數(shù)。在訪問問一個類的的時候,系系統(tǒng)將最先先執(zhí)行構(gòu)造造函數(shù)中的的語句。使使用構(gòu)造函函數(shù)請注意意以下幾個個問題:一個類的構(gòu)構(gòu)造函數(shù)通通常與類名名相同構(gòu)造函數(shù)不不聲明返回回類型。構(gòu)造函數(shù)總總是public類型的。案例名稱::構(gòu)造函數(shù)數(shù)和析構(gòu)函函數(shù)程序名稱::2-26.csusingSystem;classDesk{//構(gòu)造造函函數(shù)數(shù)和和類類名名一一樣樣,,析析構(gòu)構(gòu)函函數(shù)數(shù)前前面面加加~publicDesk(){Console.WriteLine("ConstructingDesk");weight=6;high=3;width=7;length=10;Console.WriteLine("{0},{1},{2},{3}",weight,high,width,length);}~Desk(){Console.WriteLine("DestructingDesk");}protectedintweight;protectedinthigh;protectedintwidth;protectedintlength;publicstaticvoidMain(){Deskaa=newDesk();Console.WriteLine("backinmain()");}};this關(guān)關(guān)鍵鍵字字案例例名名稱稱::使使用用this關(guān)鍵鍵字字程序序名名稱稱::2-27.csusingSystem;publicclassEmployee{publicstringname;//員工工姓姓名名publicdecimalsalary;//員工工薪薪水水//構(gòu)造造函函數(shù)數(shù)publicEmployee(stringname,decimalsalary){//用this關(guān)鍵鍵字字給給正正在在構(gòu)構(gòu)造造的的對對象象的的name和salary賦值值=name;this.salary=salary;}//顯示示員員工工姓姓名名及及薪薪水水publicvoidDiaplayEmployee(){Console.WriteLine("姓名名:{0}",name);Console.WriteLine("薪水水:{0}元",salary);//用this方法法將將當(dāng)當(dāng)前前對對象象傳傳給給Tax.CalcTax()方法法Console.WriteLine("個人人所所得得稅稅:{0}元",Tax.CalcTax(this));}}publicclassTax{publicstaticdecimalCalcTax(EmployeeE){return(0.14m*(E.salary-800.0m));}}publicclassSample{publicstaticvoidMain(){//聲明明類類Employee的實實例例eEmployeee=newEmployee("小劉劉",4123.6m);e.DiaplayEmployee();//顯示示員員工工姓姓名名和和薪薪水水}}關(guān)鍵字字static案例名名稱::使用用static關(guān)鍵字字程序名名稱::2-28.csusingSystem;publicclassPerson{privateintid;publicstaticinttotal=0;publicPerson(){total++;id=total;}}publicclassOtherClass{publicstaticvoidMain(){Person.total=100;Console.WriteLine(Person.total);Personc=newPerson();Console.WriteLine(Person.total);}}案例名名稱::使用用靜態(tài)態(tài)方法法程序名名稱::2-29.csusingSystem;publicclassPerson{privateintid;privatestaticinttotal=0;publicstaticintgetTotalPerson(){returntotal;}publicPerson(){total++;id=total;}}publicclassTestPerson{publicstaticvoidMain(){Console.WriteLine(Person.getTotalPerson());Personp1=newPerson();Console.WriteLine(Person.getTotalPerson());}}C#面面向?qū)ο蟾吒呒壧靥匦院推渌拿婷嫦驅(qū)ο笳Z語言一一樣,,C#支持持多態(tài)態(tài)、虛虛方法法、函函數(shù)的的重載載等。。除此之之外,,C#還提提供一一種特特殊的的數(shù)據(jù)據(jù)形態(tài)態(tài)“裝裝箱””多態(tài)(Polymorphism)在C#中,多多態(tài)性性的定定義是是:““同一一操作作作用用于不不同的的類的的實例例,不不同的的類將將進行行不同同的解解釋,,最后后產(chǎn)生生不同同的執(zhí)執(zhí)行結(jié)結(jié)果””。C#支持兩兩種類類型的的多態(tài)態(tài)性。。編譯時時的多多態(tài)性性:編編譯時時的多多態(tài)是是通過過重載載來實實現(xiàn)的的。對對于非非虛的的成員員來說說,系系統(tǒng)在在編譯譯時,,根據(jù)據(jù)傳遞遞的參參數(shù)、、返回回的類類型等等信息息決定定實現(xiàn)現(xiàn)何種種操作作。運行時時的多多態(tài)性性:運運行時時的多多態(tài)性性是直直到系系統(tǒng)運運行時時,才才根據(jù)據(jù)實際際情況況決定定實現(xiàn)現(xiàn)何種種操作作。C#中,運運行時時的多多態(tài)性性通過過虛方方法實實現(xiàn)。。編譯時時的多多態(tài)性性提供供了運運行速速度快快的特特點,,而運運行時時的多多態(tài)性性則帶帶來了了高度度靈活活和抽抽象的的特點點。虛方法法案例名名稱::使用用虛方方法程序名名稱::2-30.csusingSystem;classTest{staticvoidMain(string[]args){Baseb=newBase();b.Draw();Derivedd=newDerived();d.Draw();d.Fill();Baseobj=newDerived();obj.Fill();obj.Draw();}}classBase{publicvoidFill(){System.Console.WriteLine("Base.Fill");}publicvirtualvoidDraw(){System.Console.WriteLine("Base.Draw");}}classDerived:Base{publicoverridevoidDraw(){System.Console.WriteLine("Derived.Draw");}publicnewvoidFill(){System.Console.WriteLine("Derived.Fill");}}抽象類類案例名名稱::使用用抽象象類程序名名稱::2-31.csusingSystem;abstractpublicclassWindow{publicWindow(inttop,intleft){this.top=top;this.left=left;}abstractpublicvoidDrawWindow();protectedinttop;protectedintleft;}publicclassListBox:Window{publicListBox(inttop,intleft,stringcontents):base(top,left){//調(diào)用基類的的構(gòu)造函數(shù)數(shù)listBoxContents=contents;}publicoverridevoidDrawWindow(){Console.WriteLine("Writingstringtothelistbox:{0}",listBoxContents);}privatestringlistBoxContents;}publicclassTester{staticvoidMain(){Window[]winArray=newWindow[3];winArray[0]=newListBox(1,2,"FirstListBox");winArray[1]=newListBox(3,4,"SecondListBox");for(inti=0;i<2;i++){winArray[i].DrawWindow();}}}函數(shù)重載案例名稱::重載普通通函數(shù)程序名稱::2-32.csusingSystem;classOverload{publicvoidFunc(){System.Console.WriteLine("Func()");}publicvoidFunc(intx,inty){System.Console.WriteLine("Func(intx,inty)");}publicvoidFunc(longx,longy){System.Console.WriteLine("Func(longx,longy)");}publicstaticvoidMain(
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度大師傅餐飲行業(yè)人才輸送合同2篇
- 2024年度新能源項目債務(wù)轉(zhuǎn)移與政府補貼申請合同3篇
- 2024年度時尚配飾銷售代理及品牌合作合同3篇
- 2024年度大學(xué)生實習(xí)單位實習(xí)指導(dǎo)服務(wù)合同3篇
- 2024年擔(dān)保公司專用知識產(chǎn)權(quán)擔(dān)保合作協(xié)議3篇
- 2024年度打印機設(shè)備銷售及培訓(xùn)服務(wù)協(xié)議5篇
- 2024年度股權(quán)代持協(xié)議-合資經(jīng)營與風(fēng)險共擔(dān)3篇
- 2024年新能源投資質(zhì)押擔(dān)保及反擔(dān)保合同范例3篇
- 2024年度重點定制化門窗制作與安裝服務(wù)承包協(xié)議6篇
- 2024醫(yī)療器械公司產(chǎn)品經(jīng)理勞動合同標(biāo)準(zhǔn)模板3篇
- 職工子女教育資助管理制度
- 2024屆中國東航股份綜合管理部校園招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 產(chǎn)品代發(fā)合同范例
- 2024年危險品貨車租賃合同條款
- 環(huán)保監(jiān)測數(shù)據(jù)質(zhì)量控制預(yù)案
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護
- 山東省濰坊市2023-2024學(xué)年高二下學(xué)期期末考試 物理 含解析
- 事業(yè)單位會計專業(yè)考試題庫(含答案)
- 小學(xué)英語語法練習(xí)模擬試卷
- 人才儲備營銷策略
- 幼兒園小班安全教育《危險的東西不要碰》課件
評論
0/150
提交評論