VC#第3講其它常用數(shù)據(jù)類型.ppt
《VC#第3講其它常用數(shù)據(jù)類型.ppt》由會員分享,可在線閱讀,更多相關(guān)《VC#第3講其它常用數(shù)據(jù)類型.ppt(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。
VisualC#.NET程序設(shè)計,第三講其它常用數(shù)據(jù)類型,第6章其它常用數(shù)據(jù)類型,本章要點(diǎn):?字符串類型的定義與使用?枚舉類型的定義與使用?委托類型的定義與使用,6.1循序漸進(jìn)學(xué)理論,6.1.1字符串類型1.字符串的種類及其定義(1)規(guī)則字符串[格式]:string字符串變量名[=字符串初值];(2)逐字字符串逐字字符串由@字符后跟雙引號括起來的零個或多個字符組成。[格式]:string字符串變量名[=@字符串初值];,規(guī)則字符串中可以使用的轉(zhuǎn)義字符,【例6-1】觀察下列程序的執(zhí)行結(jié)果。[程序代碼]usingSystem;classA_6_1{publicstaticvoidMain(){stringstr1="你是\"王三\"?";//“\\"”是轉(zhuǎn)義字符stringstr2="星期一\\星期二\\星期三";//“\\”是轉(zhuǎn)義字符,stringstr3="你好!\t王三。";//“\t”是轉(zhuǎn)義字符stringstr4=@"你好\t王三\?";//\t并不看成轉(zhuǎn)義字符,而是看成兩個字符stringstr5=@"星期一\\星期二\\星期三";//\\也不是轉(zhuǎn)義字符,而是看成兩個“\”Console.WriteLine("str1={0},str2={1},str3={2}",str1,str2,str3);Console.WriteLine("str3={0},str4={1}",str4,str5);}},[執(zhí)行結(jié)果],2.字符串類型的使用,【例6-3】編寫一個Windows應(yīng)用程序,程序的設(shè)計界面如圖6-1所示,程序的運(yùn)行界面如圖6-2所示。程序執(zhí)行時在第一個文本框中輸入一個字符串,然后按【倒置】按鈕將把輸入的字符串反序顯示在第二個文本框中。,圖6-1程序設(shè)計界面,圖6-2程序運(yùn)行界面,3.字符串中單個字符的訪問,例如,有以下語句:stringstr1="Iamateacher."http://定義一個字符串并賦初值charc;//定義一個字符變量c=str1[0];//給字符變量賦一個字符,該字符為str1字符串的第一個字符語句執(zhí)行后,字符變量c的值為I。,【例6-4】編寫一個程序,用來統(tǒng)計用戶輸入的字符串中字母個數(shù)、數(shù)字個數(shù)和其它字符個數(shù)。程序的設(shè)計界面如圖6-3所示,程序的運(yùn)行界面如圖6-4所示。,圖6-3程序設(shè)計界面,圖6-4程序運(yùn)行界面,6.1.2結(jié)構(gòu)類型,在C++和C#中,結(jié)構(gòu)類型是對同一類具有某些特定屬性和功能的對象的抽象定義,其定義中可以包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員變量、成員函數(shù)、成員屬性等等,同C#中的類類型基本相同。但結(jié)構(gòu)類型與類類型畢竟是兩種不同的類型,主要不同點(diǎn)體現(xiàn)在以下兩個方面。(1)存儲值的不同結(jié)構(gòu)類型是值類型,而類類型是引用類型。,(2)參數(shù)傳遞不同,[格式]:struct結(jié)構(gòu)型名{成員聲明;}例如:structstudent{publicstringname;publicintage;},實際上程序中使用的不是結(jié)構(gòu)型,而是根據(jù)結(jié)構(gòu)型聲明的結(jié)構(gòu)型變量,根據(jù)結(jié)構(gòu)型聲明結(jié)構(gòu)型變量的格式如下。[格式]:結(jié)構(gòu)型名結(jié)構(gòu)型變量名;例如有以下語句:studentstu;就是創(chuàng)建了一個名為stu的結(jié)構(gòu)型變量。在程序中經(jīng)常需要訪問結(jié)構(gòu)型變量的成員,訪問方法如下。結(jié)構(gòu)型變量名.成員名;如要給stu的age成員賦值15,可使用如下語句:stu.age=15;,【例6-5】編程實現(xiàn)從鍵盤上輸入一個學(xué)生的學(xué)號、姓名和年齡,然后輸出剛剛輸入的學(xué)生學(xué)號、姓名和年齡。,6.1.3枚舉類型,[格式]:[枚舉修飾符]enum枚舉類型名{枚舉常量1,枚舉常量2,…,枚舉常量n};定義枚舉變量的語句格式如下:枚舉類型名變量名;如果希望讓枚舉型常量的值是其它類型的,可在定義枚舉型時指定,定義格式與如下。[格式]:[枚舉修飾符]enum枚舉類型名:類型說明符{枚舉常量1,枚舉常量2,…,枚舉常量n};,【例6-6】定義一個職稱枚舉類型,輸出枚舉類型中所有枚舉常量的值。,6.1.4委托類型,1.委托C#的委托相當(dāng)于在C/C++中的函數(shù)指針。函數(shù)指針用指針獲取一個函數(shù)的入口地址,實現(xiàn)對函數(shù)的操作。委托與C/C++中的函數(shù)指針不同在于委托是面向?qū)ο蟮?,是引用類型,因此對委托的使用要先定義后實例化,最后才調(diào)用。定義委托使用關(guān)鍵字delegate,定義一個委托:delegateintSomeDelegate(intnID,stringsName);再實例化:SomeDelegated1=newSomeDelegate(wr.InstanceMethod);最后調(diào)用:d1(5,"aaa");通過委托SomeDelegate實現(xiàn)對方法InstanceMethod的調(diào)用,調(diào)用還必須有一個前提條件是:方法InstanceMethod有參數(shù)和定義SomeDelegate的參數(shù)一致,并且返回值為int。方法InstanceMethod定義:publicintInstanceMethod(intnID,stringsName)委托的實例化中的參數(shù)既可以是非靜態(tài)方法,也可以是靜態(tài)方法。,一個委托聲明定義了一個從類System.Delegate延伸的類。一個委托實例封裝一個方法及可調(diào)用的實體。在聲明委托時只需要指定委托指向的函數(shù)原型的類型,它不能有返回值也不能帶有輸出類型的參數(shù)。委托類型的定義格式如下。[格式]:delegate數(shù)據(jù)類型說明符委托類型名();例如,若要聲明一個指向double類型函數(shù)原型的委托類型,可使用如下語句:delegatedoubleMyDelegate();委托既可以封裝一個靜態(tài)方法也可以封裝一個非靜態(tài)的方法。,委托的使用方法,一般分為三步:(1)聲明委托,定義參數(shù)列表和返回類型。(2)實例化委托:定義一個委托類型的實例變量,讓該實例變量指向某一個具體的方法。其一般格式如下。[格式]:委托類型名委托變量名=new委托類型名(方法名);(3)調(diào)用委托:調(diào)用委托類型變量指向的方法。其一般格式如下。[格式]:委托變量名(實參列表);,【例4.25】委托示例。usingSystem;classSimpleClass{publicclassWorkerClass{//委托引用的非靜態(tài)方法publicintInstanceMethod(intnID,stringsName){intretval=0;retval=nID*sName.Length;Console.WriteLine("調(diào)用InstanceMethod方法");returnretval;}//委托引用的靜態(tài)方法staticpublicintStaticMethod(intnID,stringsName),{intretval=0;retval=nID*sName.Length;Console.WriteLine("調(diào)用StaticMethod方法");returnretval;}}//定義委托,參數(shù)與上面兩個方法相同publicdelegateintSomeDelegate(intnID,stringsName);staticvoidMain(string[]args){//調(diào)用實例方法(非靜態(tài)方法)WorkerClasswr=newWorkerClass();SomeDelegated1=newSomeDelegate(wr.InstanceMethod);Console.WriteLine("InvokingdelegateInstanceMethod,return={0}",d1(5,"aaa"));,//調(diào)用靜態(tài)方法SomeDelegated2=newSomeDelegate(WorkerClass.StaticMethod);Console.WriteLine("InvokingdelegateStaticMethod,return={0}",d2(5,"aaa"));}}運(yùn)行結(jié)果如圖4.10所示。,圖4.10運(yùn)行結(jié)果,委托,2.多播相對于上面的一次委托只調(diào)用一個方法,一次委托也可以調(diào)用多個方法,稱為多播。通過+和-運(yùn)算符實現(xiàn)多播的增加或減少。,【例4.26】多播示例。usingSystem;classSimpleClass{publicclassWorkerClass{//委托引用的非靜態(tài)方法publicintInstanceMethod(intnID,stringsName){intretval=0;retval=nID*sName.Length;Console.WriteLine("調(diào)用InstanceMethod方法");returnretval;},//委托引用的靜態(tài)方法staticpublicintStaticMethod(intnID,stringsName){intretval=0;retval=nID*sName.Length;Console.WriteLine("調(diào)用StaticMethod方法");returnretval;}}//定義委托,簽名與上面兩個方法相同publicdelegateintSomeDelegate(intnID,stringsName);staticvoidMain(string[]args){//調(diào)用實例方法WorkerClasswr=newWorkerClass();SomeDelegated1=newSomeDelegate(wr.InstanceMethod);Console.WriteLine("InvokingdelegateInstanceMethod,return={0}",d1(5,"aaa"));,//調(diào)用靜態(tài)方法SomeDelegated2=newSomeDelegate(WorkerClass.StaticMethod);Console.WriteLine("InvokingdelegateStaticMethod,return={0}",d2(5,"aaa"));//多播Console.WriteLine();Console.WriteLine("測試多播...");//多播d3由兩個委托d1和d2組成SomeDelegated3=d1+d2;Console.WriteLine("Invokingdelegate(s)d1ANDd2(multi-cast),return={0}",d3(5,"aaa"));//委托中的方法個數(shù)intnum_method=d3.GetInvocationList().Length;Console.WriteLine("Numberofmethodsreferencedbydelegated3:{0}",num_method);//多播d3減去委托d2d3=d3-d2;Console.WriteLine("Invokingdelegate(s)d1(multi-cast),return={0}",d3(5,"aaa"));,//委托中的方法個數(shù)num_method=d3.GetInvocationList().Length;Console.WriteLine("Numberofmethodsreferencedbydelegated3:{0}",num_method);}}運(yùn)行結(jié)果如圖4.11所示。,圖4.11運(yùn)行結(jié)果,6.2典型實例練能力,6.2.1典型實例一:回文字符串的判定【實例題目】編寫一個應(yīng)用程序,用來判斷用戶輸入的字符串是否為回文,所謂回文就是正讀和反讀均一樣的字符串。如“abcddcba”、“我是兵兵是我”均是回文,而“abcdefgh”則不是回文。程序的設(shè)計界面如圖6-5所示,程序的運(yùn)行界面如圖6-6所示。,圖6-5程序設(shè)計界面,圖6-6程序運(yùn)行界面,6.3上機(jī)練習(xí)重應(yīng)用,6.3.1上機(jī)練習(xí)一:從字符串中分離出數(shù)字字符【練習(xí)題目】編寫一個程序,把在一個文本框中輸入的字符串中的數(shù)字字符分離出來,然后顯示在另一個文本框中。程序的設(shè)計界面如圖6-8所示,程序的運(yùn)行界面如圖6-9所示。,圖6-8程序設(shè)計界面,圖6-9程序運(yùn)行界面,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- VC 其它 常用 數(shù)據(jù)類型
鏈接地址:http://m.jqnhouse.com/p-11498198.html