欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#枚舉類型的概念及應(yīng)用

這篇文章主要講解了“C#枚舉類型的概念及應(yīng)用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#枚舉類型的概念及應(yīng)用”吧!

任城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

C#枚舉類型(也稱為枚舉)為定義一組可以賦給變量的命名整數(shù)常量提供了一種有效的方法。例如,假設(shè)您必須定義一個(gè)變量,該變量的值表示一周中的一天。該變量只能存儲(chǔ)七個(gè)有意義的值。若要定義這些值,可以使用枚舉類型。枚舉類型是使用 enum 關(guān)鍵字聲明的。

enum Days { Sunday, Monday, Tuesday,   Wednesday, Thursday, Friday, Saturday };  enum Months : byte { Jan, Feb, Mar, Apr,   May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

默認(rèn)情況下,枚舉中每個(gè)元素的基礎(chǔ)類型是 int。可以使用冒號(hào)指定另一種整數(shù)值類型,如前面的示例所示。以下是使用枚舉而不使用數(shù)值類型的好處:

明確為客戶端代碼指定哪些值是變量的有效值。

在 Visual Studio 中,IntelliSense 列出定義的值。

如果不為枚舉數(shù)列表中的元素指定值,則它們的值將以 1 為增量自動(dòng)遞增。在前面的示例中,Days.Sunday 的值為 0,Days.Monday 的值為 1,依此類推。創(chuàng)建新的 Days 對(duì)象時(shí),如果不顯式為其賦值,則它將具有默認(rèn)值 Days.Sunday (0)。創(chuàng)建枚舉時(shí),應(yīng)選擇最合理的默認(rèn)值并賦給它一個(gè)零值。這便使得只要在創(chuàng)建枚舉時(shí)未為其顯式賦值,則所創(chuàng)建的全部枚舉都將具有該默認(rèn)值。

如果變量 meetingDay 的類型為 Days,則只能將 Days 定義的某個(gè)值賦給它(無需顯式強(qiáng)制轉(zhuǎn)換)。如果會(huì)議日期更改,可以將 Days 中的新值賦給 meetingDay:

Days meetingDay = Days.Monday;  //...  meetingDay = Days.Friday;

C#枚舉類型說明:

可以將任意整數(shù)值賦給 meetingDay。例如,代碼行 meetingDay = (Days) 42 不會(huì)產(chǎn)生錯(cuò)誤。但也不應(yīng)該這樣做,因?yàn)槟J(rèn)約定的是枚舉變量只容納枚舉定義的值之一。將任意值賦給枚舉類型的變量很有可能會(huì)導(dǎo)致錯(cuò)誤。

可以將任意值賦給枚舉類型的枚舉數(shù)列表中的元素,也可以使用計(jì)算值:

enum MachineState  {  PowerOff = 0,  Running = 5,  Sleeping = 10,  Hibernating = Sleeping + 5  }

C#枚舉類型作為位標(biāo)志

可以使用C#枚舉類型定義位標(biāo)志,從而使該C#枚舉類型的實(shí)例可以存儲(chǔ)枚舉數(shù)列表中定義的值的任意組合。(當(dāng)然,某些組合在您的程序代碼中可能沒有意義或不允許使用。)

創(chuàng)建位標(biāo)志枚舉的方法是應(yīng)用 System..::.FlagsAttribute 屬性并適當(dāng)定義一些值,以便可以對(duì)這些值執(zhí)行 AND、OR、NOT 和 XOR 按位運(yùn)算。在位標(biāo)志枚舉中包含一個(gè)值為零(表示“未設(shè)置任何標(biāo)志”)的命名常量。如果零值不表示“未設(shè)置任何標(biāo)志”,則請(qǐng)不要為標(biāo)志指定零值。

在下面的示例中,定義了 Days 枚舉的另一個(gè)版本,即 Days2。Days2 具有 Flags 屬性,且它的每個(gè)值都是 2 的若干次冪,指數(shù)依次遞增。這樣您就可以創(chuàng)建值為 Days2.Tuesday 和 Days2.Thursday 的 Days2 變量。

[Flags]  enum Days2  {  None = 0x0,  Sunday = 0x1,  Monday = 0x2,  Tuesday = 0x4,  Wednesday = 0x8,  Thursday = 0x10,  Friday = 0x20,  Saturday = 0x40  }  class MyClass  {  Days2 meetingDays = Days2.Tuesday | Days2.Thursday;  }

C#枚舉類型的問題:若要在某個(gè)枚舉上設(shè)置標(biāo)志,請(qǐng)使用邏輯 OR 運(yùn)算符,如下面的示例所示:

// Initialize with two flags using bitwise OR.  meetingDays = Days2.Tuesday | Days2.Thursday;  // Set an additional flag using bitwise OR.  meetingDays = meetingDays | Days2.Friday;  Console.WriteLine("Meeting days are {0}", meetingDays);  // Output: Meeting days are Tuesday, Thursday, Friday  // Remove a flag using bitwise XOR.  meetingDays = meetingDays ^ Days2.Tuesday;  Console.WriteLine("Meeting days are {0}", meetingDays);  // Output: Meeting days are Thursday, Friday

若要確定是否設(shè)置了特定標(biāo)志,請(qǐng)使用邏輯 AND 運(yùn)算,如下面的示例所示:

// Test value of flags using bitwise AND.  bool test = (meetingDays & Days2.Thursday) == Days2.Thursday;  Console.WriteLine("Thursday {0} a meeting day.",   test == true ? "is" : "is not");  // Output: Thursday is a meeting day.

有關(guān)使用System..::.FlagsAttribute 屬性定義枚舉類型時(shí)需要考慮的事項(xiàng)的更多信息,請(qǐng)參見System..::.Enum。

使用 System.Enum 方法發(fā)現(xiàn)和操作枚舉值

所有枚舉都是System..::.Enum 類型的實(shí)例。不能從System..::.Enum 派生新類,但可以使用它的方法發(fā)現(xiàn)有關(guān)枚舉實(shí)例中的值的信息以及操作這些值。

string s = Enum.GetName(typeof(Days), 4);  Console.WriteLine(s);  Console.WriteLine("The values of the Days Enum are:");  foreach (int i in Enum.GetValues(typeof(Days)))  Console.WriteLine(i);  Console.WriteLine("The names of the Days Enum are:");  foreach (string str in Enum.GetNames(typeof(Days)))  Console.WriteLine(str);

感謝各位的閱讀,以上就是“C#枚舉類型的概念及應(yīng)用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C#枚舉類型的概念及應(yīng)用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

新聞名稱:C#枚舉類型的概念及應(yīng)用
標(biāo)題路徑:http://aaarwkj.com/article4/igesie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)標(biāo)簽優(yōu)化、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
日本中文字幕免费专区| 午夜在线观看成人av| 精品久久久久久亚洲野狼| 九色91成人在线视频| 久久91超碰青草在哪里看| 99热这里有精品久久| 精品一区二区人妻乱交| 999热这里只有精品视频| 日本成人一区二区在线播放| 久久久精品国产亚洲av色哟哟| 日本爱爱一区二区三区| 国产91人妻精品一区二区三区| 久久精品亚洲av三区麻豆| 久久久久久成人综合色| 日进去了啊内射视频| 青青草原三区在线播放| 国产日韩手机在线不卡视频| 国产精品一区二区麻豆本子| 日韩精品 在线一区二区| 亚洲av日韩高清在线观看| 亚洲欧美日韩乱码综合久久| 日本高清区一区二区三区四区五区| 成人深夜福利视频在线| 黄色av一本二本在线观看| 99久久精品国产熟女拳交| 亚洲欧美日韩有码一区| 亚洲精品熟女国产中文| 久久人妻少妇嫩草av蜜桃综合| 精品亚洲在线一区二区| 情侣自拍偷拍亚洲天堂区| 日韩精品在线免费观看了| 91精品国产在线观看| 日韩欧美日日夜夜精品| 一区二区三区蜜桃91| 国内成人午夜激情视频| 日本经典三级在线视频| 禁止未满十八在线观看| 亚洲一区日韩精品颜射| 久久精品国产亚洲av麻豆网站| 久久热精品视频这里有| 午夜夫妻生活视频在线观看|