下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、枚舉類型及Enum方法實(shí)際問題中,有些變量的取值被限定在一個(gè)有限的范圍內(nèi)。例如,一個(gè)星期只有七大,一年只有十二個(gè)月。如果把這些量說明為整型,字符型或其它類型顯然是不妥當(dāng)?shù)?。為此,程序設(shè)計(jì)語言提供了一種枚舉類型(也稱為枚舉)。枚舉類型為定義一組可以賦給變量的命名整數(shù)常量提供了一種有效的方法。例如,使用枚舉類型定義一個(gè)星期七天,定義一年十二個(gè)月:enumDaysSunday,Monday,Tuesday,Wednesday,Thursday,Friday,SaturdayenumMonths:byteJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec1
2、.枚舉的聲明,其形式為:訪問修飾符enum枚舉名:基礎(chǔ)類型枚舉成員(標(biāo)識(shí)符)說明:任意枚舉類型都有基礎(chǔ)類型,該基礎(chǔ)類型可以是除char以外的任何整型,如:byte、sbyte、short、ushort、int、uint、long、ulong?;A(chǔ)類型必須能夠表示該枚舉中定義的所有枚舉成員。枚舉聲明時(shí)可以對(duì)基礎(chǔ)類型進(jìn)行顯式地聲明。而沒有顯式聲明時(shí)基礎(chǔ)類型默認(rèn)是into基礎(chǔ)類型指定為每個(gè)枚舉數(shù)成員分配的內(nèi)存大小。2 .枚舉注意事項(xiàng):1)枚舉成員不能是數(shù)值常量、字符常量、字符串常量,使用時(shí)不能加單、雙引號(hào)。例如,以下的定義是錯(cuò)誤的:enumDays,Sun?,Mon?,Tues?,Wed?,Thu?
3、,Fri?,Sat?enumDays"Sun":Mon","Tues":Wed',"Thu":Fri"",Sat2)每個(gè)枚舉成員均具有相關(guān)聯(lián)的常數(shù)值。此值的類型就是枚舉的基礎(chǔ)類型。枚舉類型屬于順序類型。根據(jù)定義類型時(shí)各枚舉成員的排列順序確定它們的序列,如在默認(rèn)基礎(chǔ)類型即int的情況下序列號(hào)從0開始,后面每個(gè)枚舉成員的值依次遞增1。當(dāng)然可以顯式賦值。例如:enumDaysSunday=2,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday3)枚舉成員是
4、常量,不是變量。盡管是標(biāo)識(shí)符也不能在程序中當(dāng)做變量用賦值語句對(duì)它賦值。例如以下在程序中對(duì)枚舉成員賦值會(huì)提示錯(cuò)誤。publicclassEnumTestenumDaysSunday,Monday,Tuesday,Wednesday,Thursday,Friday,SaturdaystaticvoidMain()Sunday=5;Sunday=Monday;Console.WriteLine("Sunday=0",Sunday);4)從枚舉成員到整型的轉(zhuǎn)換需要用顯式類型轉(zhuǎn)換來完成。例如對(duì)于下面的語旬將枚舉類型Days類型的枚舉成員通過使用強(qiáng)制轉(zhuǎn)換來轉(zhuǎn)換枚舉成員為整型。publi
5、cclassEnumTestenumDaysSunday,Monday,Tuesday,Wednesday,Thursday,Friday,SaturdaystaticvoidMain()(intx=(int)Days.Sunday;inty=(int)Days.Monday;Console.WriteLine("Sunday=0",x);Console.WriteLine("Monday=0",y);5)同一個(gè)枚舉類型中任意兩個(gè)枚舉成員不能具有相同的名稱。每個(gè)枚舉成員的常數(shù)值必須在該枚舉的基礎(chǔ)類型的范圍之內(nèi)。6)同一個(gè)枚舉成員不能出現(xiàn)在兩個(gè)或兩個(gè)以上的
6、枚舉類型定義中。7)設(shè)有變量a,b,c被說明為上述的Days,可采用下述任一種方式:enumDaysSunday=-1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;enumDaysa,b,c;enumDaysSunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturdaya,b,c;enumSunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturdaya,b,c;3 .枚舉類經(jīng)常用在switch-case結(jié)構(gòu)中,其常用的(Enum)方法主要有
7、以下幾個(gè):1) Enum.Parse方法(Type,String):該方法用于將一個(gè)或多個(gè)枚舉常數(shù)的名稱或數(shù)字值的字符串表示轉(zhuǎn)換成等效的枚舉對(duì)象。語法為publicstaticObjectParse(TypeenumType,stringvalue),其參數(shù)enumType是枚舉類型,value是要轉(zhuǎn)換的值或名稱的字符串,返回值是enumType類型的對(duì)象。value參數(shù)中包含枚舉成員基礎(chǔ)值字符串表示形式、已命名的常數(shù)或由逗號(hào)分隔的已命名常數(shù)列表。例如:usingSystem;enumDaysSunday,Monday,Tuesday,Wednesday,Thursday,Friday,Sat
8、urdaypublicclassExamplepublicstaticvoidMain()/Daysday=(Days)Enum.Parse(typeof(Days),"0");Daysday=(Days)Enum.Parse(typeof(Days),"Sunday");switch(day)caseDays.Sunday:Console.WriteLine("TodayisSunday");break;caseDays.Monday:Console.WriteLine("TodayisMonday");brea
9、k;case.Console.Read();2) Enum.Parse方法(Type,String,Boolean)該方法用于將一個(gè)或多個(gè)枚舉常數(shù)的名稱或數(shù)字值的字符串表示轉(zhuǎn)換成等效的枚舉對(duì)象。一個(gè)參數(shù)指定該操作是否區(qū)分大小寫。其中參數(shù)Boolean取true時(shí)忽略大小寫,為false時(shí)考慮大小寫。如上例:Daysday=(Days)Enum.Parse(typeof(Days),"sunday",true»匕時(shí)盡管"sunday"不是枚舉類Days中的枚舉常數(shù)成員,但是仍能得到返回值。3) Enum.ToString方法該方法用于將實(shí)例的值轉(zhuǎn)
10、換為其等效的字符串表示形式。例如:usingSystem;enumDaysSunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,SaturdaypublicclassExamplepublicstaticvoidMain()Enumday=Days.Sunday;Console.WriteLine("Thevalueis'0'",day.ToString();Console.WriteLine("Thevalueis'0'",(Days)1).ToString();Consol
11、e.Read();4) Enum.IsDefined方法(Type,String)該方法用于指定枚舉中是否存在具有指定值的常數(shù)的判定。其參數(shù)enumType是枚舉類型,value參數(shù)可以是:enumType類型的任何成員;一個(gè)變量,其值是enumType類型的一個(gè)枚舉成員;表示枚舉成員名稱的字符串或者enumType的基礎(chǔ)類型的一個(gè)值。如果枚舉類型中某個(gè)常數(shù)具有等于value的值,返回值為true,否則為false。例如:usingSystem;enumDaysSunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturdaypubliccla
12、ssExamplepublicstaticvoidMain()intx=(int)Days.Sunday;Console.WriteLine("'0'",Enum.IsDefined(typeof(Days),Days.Sunday);Console.WriteLine("'0'",Enum.IsDefined(typeof(Days),x);Console.WriteLine("'0'",Enum.IsDefined(typeof(Days),"Sunday");C
13、onsole.WriteLine("'0'",Enum.IsDefined(typeof(Days),1);Console.Read();5)Enum.GetName方法該方法用于在指定枚舉中檢索是否具有指定值的常數(shù)的名稱。其參數(shù)enumType是枚舉類型,value參數(shù)是特定枚舉常數(shù)的值(根據(jù)其基礎(chǔ)類型)。返回一個(gè)值為value的枚舉常數(shù)的名稱字符串;如果沒有找到這樣的常數(shù),則返回nullo如果多個(gè)枚舉成員具有相同的基礎(chǔ)值,則GetName方法可保證它將返回其中一個(gè)枚舉成員的名稱。但是,它并不保證它將始終返回相同枚舉成員的名稱。因此,如果多個(gè)枚舉成員具有相
14、同的值,應(yīng)用程序代碼決不應(yīng)依賴于返回特定成員名稱的方法。注意其傳入的參數(shù)值必須是枚舉的枚舉基或基礎(chǔ)類型。6)Enum.GetNames方法該方法用于獲取一個(gè)指定枚舉中常數(shù)名稱的數(shù)組。返回值數(shù)組的元素按枚舉常量的值排序。如果存在具有相同值的枚舉常量,則不指定其相應(yīng)名稱的順序。例如:usingSystem;enumDaysSunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,SaturdaypublicclassExamplepublicstaticvoidMain()foreach(stringsinEnum.GetNames(typeof(Days
15、)Console.WriteLine(s);Console.Read();說明:以上均是Enum類型經(jīng)常用到的方法,其中Enum.Pars*法最是經(jīng)常用到。4.枚舉類型在VS2010中的一些現(xiàn)象1) VS2010中同一個(gè)枚舉類型中如果有相同的枚舉成員不報(bào)錯(cuò),如:enumDaysSunday,Sunday,Tuesday,Wednesday,Thursday,Friday,Saturday但是在調(diào)用枚舉成員是提示錯(cuò)誤。2) VS2010中對(duì)于枚舉成員的常數(shù)值在該枚舉的基礎(chǔ)類型的范圍之外時(shí)不報(bào)錯(cuò)。如:enumDays:uintSunday=-1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday但是在調(diào)試時(shí)提示錯(cuò)誤。3) VS2010中對(duì)于同一個(gè)枚舉成員同時(shí)出現(xiàn)在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《接觸網(wǎng)施工》課件 4.10.2 地線安裝
- 2024年考研備考期間的人際關(guān)系與心理壓力管理
- 2024年敕勒歌教案:傳承與創(chuàng)新
- 第45屆制造團(tuán)隊(duì)挑戰(zhàn)賽全國(guó)選拔賽初步試題(產(chǎn)品設(shè)計(jì)專業(yè)方向)
- 探究教育道德:《曾子殺豬》
- 《上學(xué)歌》教案設(shè)計(jì)方法與技巧
- 《拿來主義》教學(xué)課件:2024年教學(xué)方法論的新實(shí)踐
- 掌握2024年P(guān)hotoshop去水印技巧專業(yè)培訓(xùn)教程
- 2024年教育領(lǐng)域多媒體課件制作趨勢(shì)
- 2024年美國(guó)總統(tǒng)大選民調(diào)分析
- 電動(dòng)汽車結(jié)構(gòu)與檢修測(cè)試題附答案完整版
- 掛面車間操作規(guī)程
- 銑削深攪水泥土攪拌墻技術(shù)規(guī)程-中國(guó)土木工程學(xué)會(huì)
- 公路瀝青路面施工技術(shù)規(guī)范JTGF40-2004
- 個(gè)人住房公積金提取申請(qǐng)表
- 員工日常檢查記錄表
- 畫法幾何 華中科大-新3-2
- 辦公生活區(qū)臨建施工方案
- 外墻雙排鋼管腳手架搭設(shè)綜合單價(jià)分析表
- 《房屋查驗(yàn)與室內(nèi)環(huán)境檢測(cè)技術(shù)》課程標(biāo)準(zhǔn)
- 中文分項(xiàng)樣本a10vm.a10ve
評(píng)論
0/150
提交評(píng)論