精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

有關(guān)C#枚舉的問(wèn)答集錦:有關(guān)賦值

開(kāi)發(fā) 后端
本文匯總了一些有關(guān)C#枚舉的問(wèn)答。本文是第二部分,匯總了一些有關(guān)枚舉賦值的相關(guān)問(wèn)答。

本文繼續(xù)介紹C#枚舉的常見(jiàn)問(wèn)題與答案。

Q:我留意到Code #02中的

.field public static literal Aligment Center = int32(0x00000001)

該語(yǔ)句明顯是整數(shù)賦值,這是否說(shuō)明C#枚舉類型實(shí)質(zhì)上是整數(shù)類型?

A:這說(shuō)明枚舉類型與整數(shù)類型的確有一定的關(guān)系。事實(shí)上,每一個(gè)枚舉類型都有與之相對(duì)應(yīng)的整數(shù)類型,我們稱該整數(shù)類型為底層類型(underlying type),默認(rèn)的情況下使用,.NET使用System.Int32。當(dāng)然,你可以手動(dòng)將其指定為其他的整數(shù)類型:

  1. // Code #09  
  2. public enum Alignment : byte 
  3. {  
  4.     Left,  
  5.     Center,  
  6.     Right  
  7. }  

注意,能被指定為枚舉的底層類型的只能是如下所列的整數(shù)類型:byte, sbyte, short, ushort, int, uint, long, ulong。

--------------------------------------------------------------------------------

Q:為何我們需要指定枚舉類型的底層類型?

A:你完全可以讓它接受默認(rèn)的底層類型。請(qǐng)留意Code #08,你完全找不到“Center”這個(gè)字眼,然而在C#代碼中,它卻是存在的,為什么呢?這是因?yàn)榇a在編譯的時(shí)候,編譯器把枚舉類型轉(zhuǎn)換為與之對(duì)應(yīng)的底層類型的數(shù)值來(lái)處理。Code #08的L_0000實(shí)際上就是把類型為System.Int32的數(shù)值1推入堆棧,而不是把“Center”推入堆棧。事實(shí)上,底層類型說(shuō)明了如何為枚舉類型分配空間,不同的底層類型所占用的資源不同,大概當(dāng)你在受限系統(tǒng)上進(jìn)行開(kāi)發(fā)的話,你就可能需要注意一下了。

--------------------------------------------------------------------------------

C#枚舉的賦值

Q:枚舉成員的值是怎樣規(guī)定的?

A:如果你沒(méi)有手動(dòng)指定成員的值的話,從上往下看,各成員的值為:0, 1, 2, ...。說(shuō)罷了,就是一個(gè)非負(fù)整數(shù)等差數(shù)列,其初值為0,步長(zhǎng)為1。例如:

  1. // Code #10  
  2. public enum Alignment  
  3. {  
  4.     Left,    // 0  
  5.     Center,    // 1  
  6.     Right    // 2  
  7. }  

--------------------------------------------------------------------------------

Q:如果我有手動(dòng)指定某些成員的值呢?

A:那么被賦值的成員的值就是你所指定的值。當(dāng)然,無(wú)論你是否手動(dòng)指定枚舉成員的值,遞增步長(zhǎng)都不會(huì)變,總是為1。為了測(cè)試你是否理解,請(qǐng)說(shuō)出下面枚舉個(gè)成員的值以及你的判斷理由(請(qǐng)用人腦而不是電腦來(lái)運(yùn)行以下代碼):

  1. // Code #11  
  2. public enum DriveType : sbyte 
  3. {  
  4.     CDRom,  
  5.     Fixed = -2,  
  6.     Network,  
  7.     NoRootDirectory = -1,  
  8.     Ram,  
  9.     Removable = Network * NoRootDirectory,  
  10.     Unknown  
  11. }  

--------------------------------------------------------------------------------

Q:我們?nèi)绾潍@取枚舉成員的值,無(wú)論成員是否被手動(dòng)賦值?

A:你可以使用System.Enum的

  1. public static Array GetValues(Type enumType); 

該方法返回一個(gè)包含所有枚舉成員的數(shù)組:

  1. // Code #12  
  2. // See Code #01 for Alignment.  
  3. public static void Main()  
  4. {  
  5.     Alignment[] alignments = (Alignment[])Enum.GetValues(typeof(Alignment));  
  6.     Console.WriteLine("Wanna see the values of Alignment's menbers?");  
  7.     foreach (Alignment a in alignments)  
  8.         Console.WriteLine("{0:G} = {0:D}", a);  
  9. }  
  10.  
  11. // Output:  
  12. // Wanna see the values of Alignment's menbers?  
  13. // Left = 0  
  14. // Center = 1  
  15. // Right = 2  

--------------------------------------------------------------------------------

Q:如果我只需要其中某些枚舉成員的值呢?

A:那么你可以把枚舉轉(zhuǎn)換為IConvertible接口,再調(diào)用對(duì)應(yīng)的方法:

  1. // Code #12  
  2. // See Code #01 for Alignment.  
  3. public static void Main()  
  4. {  
  5.     IConvertible ic = (IConvertible)Alignment.Center;  
  6.     int i = ic.ToInt32(null);  
  7.     Console.WriteLine("The value of Alignment.Center is {0}.", i);  
  8. }  
  9.  
  10. // Output:  
  11. // The value of Alignment.Center is 1.  

--------------------------------------------------------------------------------

Q:為什么需要手動(dòng)指定枚舉成員的值?

A:一般情況下,使用默認(rèn)的賦值規(guī)則就足夠了,但某些情況下,為枚舉成員指定一個(gè)與實(shí)際情況(模型)相符的值可能更有意義,這要視你具體所建的模型而定。

還是讓我們來(lái)一個(gè)實(shí)際的例子:

  1. // Code #13  
  2. public enum CustomerKind  
  3. {  
  4.     Normal = 90,  
  5.     Vip = 80,  
  6.     SuperVip = 70,  
  7.     InActive = 100  
  8. }  
  9.  
  10. public class Customer  
  11. {  
  12.     public readonly CustomerKind Kind;  
  13.  
  14.     private double m_Payment;  
  15.     public double Payment  
  16.     {  
  17.         return m_Payment * (int)Kind / 100;  
  18.     }  
  19.  
  20.     // Code here  
  21. }  

我為枚舉CustomerKind的每個(gè)成員都賦了一個(gè)特定的值,該值其實(shí)就是顧客購(gòu)物折扣百分率。而在Customer類中,Payment屬性就通過(guò)強(qiáng)類型轉(zhuǎn)換來(lái)獲取枚舉成員的值(也就是購(gòu)物折扣率),并用于貨款計(jì)算。從這里可以看出,獲取枚舉成員的值還可以通過(guò)強(qiáng)類型轉(zhuǎn)換方式。

--------------------------------------------------------------------------------

Q:既然枚舉類型可以強(qiáng)制轉(zhuǎn)換為整數(shù),那么整數(shù)是否也可以強(qiáng)制轉(zhuǎn)換為枚舉類型?

A:答案是肯定的。

  1. // Code #14  
  2. // See Code #01 for Alignment.  
  3. Alignment a = (Alignment)1;  

但這種機(jī)制可能使你遇到一些麻煩:

  1. // Code #15  
  2. // See Code #01 for Alignment.  
  3. class Program  
  4. {  
  5.     static void Main()  
  6.     {  
  7.         Foo((Alignment)12345);  
  8.     }  
  9.  
  10.     static void Foo(Alignment a)  
  11.     {  
  12.         // Code here  
  13.     }  
  14. }  

你無(wú)法避免有人進(jìn)行這樣的惡作劇!!

--------------------------------------------------------------------------------

Q:那么是否有辦法對(duì)付這些惡作劇的人?

A:Sure!我們總不能假設(shè)人人都那么守規(guī)矩,所以,我們需要System.Enum的

  1. public static bool IsDefined(Type enumType, object value);  
  2.  

現(xiàn)在我們把Code #15的Foo方法改進(jìn)一下:

  1. // Code #16  
  2. // See Code #01 for Alignment.  
  3. static void Foo(Alignment a)  
  4. {  
  5.     if (!Enum.IsDefined(typeof(Alignment), a))  
  6.         throw new ArgumentException("DO NOT MAKE MISCHIEF!");  
  7.  
  8.     // Code here  
  9. }  

這樣,惡作劇的人將會(huì)收到一個(gè)警告(異常消息)。當(dāng)然,我們不排除有人是由于一時(shí)大意才造成這樣的“惡作劇”,那么IsDefined方法同樣可以幫助你處理好這些情況。

--------------------------------------------------------------------------------

Q:我認(rèn)為我們還可以使用條件判斷語(yǔ)句來(lái)處理這種情況:

  1. // Code #17  
  2. // See Code #01 for Alignment.  
  3. static void Foo(Alignment a)  
  4. {  
  5.     if (a != Alignment.Left &&  
  6.         a != Alignment.Center &&  
  7.         a != Alignment.Right)  
  8.         throw new ArgumentException("DO NOT MAKE MISCHIEF!");  
  9.  
  10.     // Code here  
  11. }  

或者

  1. // Code #18  
  2. // See Code #01 for Alignment.  
  3. static void Foo(Alignment a)  
  4. {  
  5.     switch(a)  
  6.     {  
  7.         case Alignment.Left:  
  8.             Console.WriteLine("Cool~");  
  9.             break;  
  10.         case Alignment.Center:  
  11.             Console.WriteLine("Well~");  
  12.             break;  
  13.         case Alignment.Right:  
  14.             Console.WriteLine("Good~");  
  15.             break;  
  16.         default:  
  17.             Console.WriteLine("DO NOT MAKE MISCHIEF!");  
  18.             break;  
  19.     }  
  20. }  

A:你絕對(duì)可以這樣做!事實(shí)上,如果你處于以下情況之一的話:

1. Alignment枚舉代碼不會(huì)被修改
2. 你不希望使用Alignment枚舉新增的特性

那么我會(huì)推薦使用你的處理方式。而且,你還可以為自己的代碼定義一個(gè)這樣的方法:

  1. // Code #19  
  2. // See Code #01 for Alignment.  
  3. public static bool IsAlignment(Alignment a)  
  4. {  
  5.     switch(a)  
  6.     {  
  7.         case Alignment.Left:  
  8.             return true;  
  9.         case Alignment.Center:  
  10.             return true;  
  11.         case Alignment.Right:  
  12.             return true;  
  13.         default:  
  14.             return false;  
  15.     }  
  16. }  

這個(gè)方法比起IsDefine方法高效多了。

--------------------------------------------------------------------------------

以上就總結(jié)了一些C#枚舉賦值的相關(guān)問(wèn)答。

【編輯推薦】

  1. 有關(guān)C#枚舉的問(wèn)答集錦:基礎(chǔ)篇
  2. C#枚舉和數(shù)學(xué)習(xí)經(jīng)驗(yàn)總結(jié)
  3. 淺談如何利用C#枚舉所有的窗體
  4. C#記憶功能的地址欄控件
  5. 描述C#調(diào)用外部進(jìn)程
責(zé)任編輯:yangsai 來(lái)源: CSDN博客
相關(guān)推薦

2009-08-11 14:44:24

C#枚舉

2009-08-11 15:24:03

C#枚舉

2010-08-12 18:01:38

ibmdwJazz

2010-12-29 09:51:06

配置vsftpdDebian

2011-06-13 10:30:07

Linus Torva

2009-06-11 13:00:08

Java數(shù)組賦值

2012-07-05 09:42:08

jQuery

2010-06-02 13:30:10

IPv6標(biāo)準(zhǔn)

2010-03-12 09:47:22

2018-02-06 10:07:18

RAID 5磁盤陣列數(shù)據(jù)恢復(fù)

2009-08-18 10:30:30

C#枚舉

2009-08-21 18:05:23

ASP.NET Ses

2011-03-03 13:25:57

2009-08-13 14:52:21

.NET性能誤區(qū)C#和VB.NET

2010-01-28 13:15:43

C++參數(shù)

2010-01-18 16:14:43

配置VLAN交換機(jī)

2010-01-20 09:14:49

C語(yǔ)言模塊化

2009-12-29 14:41:12

ADSL常見(jiàn)硬件問(wèn)題

2018-01-31 10:58:27

2010-01-21 09:26:53

CC++編譯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美在线播放一区| 777久久久精品| 好看的日韩精品| www.国产高清| 免费成人av| 欧美情侣在线播放| 国产a级片网站| av在线女优影院| 国产福利91精品| 欧洲午夜精品久久久| 久久久99999| 欧美亚洲国产日韩| 欧美精品久久天天躁| 成人免费视频91| av基地在线| 91一区二区三区在线播放| 国产三级精品网站| 中文在线第一页| 欧美1区2区| 国产亚洲一级高清| 337p日本欧洲亚洲大胆张筱雨| 欧美男男激情videos| 国产精品女同一区二区三区| 国产欧美日韩视频一区二区三区| 最近国语视频在线观看免费播放| 韩日精品视频| 亚洲天堂久久av| 美女黄色一级视频| 日韩成人综合网| 精品久久久久久国产91| 四虎永久免费网站| 国产区视频在线| 成av人片一区二区| 久久精品夜色噜噜亚洲aⅴ| 亚洲黄色在线播放| 欧美少妇一级片| 国产精品专区在线| av在线电影院| 99精品国产视频| 91网站在线看| 中文字幕视频二区| 久久精品官网| 亲爱的老师9免费观看全集电视剧| 曰本女人与公拘交酡| 日韩电影免费网址| 亚洲三级黄色在线观看| 国产亚洲色婷婷久久99精品91| 久久99成人| 欧美一区二区三区影视| jizzzz日本| 黄色成人在线观看网站| 在线看日韩精品电影| 成年人观看网站| 台湾佬中文娱乐网欧美电影| 天天综合网天天综合色| 日本精品久久久久久久久久| 特级毛片在线| 亚洲一区二区在线播放相泽| 最新av在线免费观看| 久久黄色美女电影| 亚洲视频在线一区观看| 在线观看视频黄色| av在线影院| 亚洲精品你懂的| 亚洲天堂电影网| 国产黄a三级三级三级av在线看| 亚洲欧洲日韩一区二区三区| 在线一区亚洲| 日韩精品卡一| 精品久久久久久久中文字幕| 成 年 人 黄 色 大 片大 全| 亚洲十八**毛片| 色偷偷88欧美精品久久久| 欧美一级片中文字幕| 亚洲mmav| 51午夜精品国产| 在线成人精品视频| 国产美女撒尿一区二区| 亚洲精品自在久久| 亚洲av毛片基地| 婷婷综合伊人| 欧美精品精品精品精品免费| 久久久久99精品成人片我成大片| 久久午夜视频| 成人免费网视频| 成人午夜福利视频| 久久综合视频网| 亚洲一区二区在线免费观看| 91精品久久久| 婷婷六月综合网| 天天碰免费视频 | 久久成年人免费电影| 九九精品在线观看视频| 国产精品久久久亚洲一区| 国产成人精品最新| 精品女同一区二区三区| 99精品视频一区二区三区| 日韩国产精品一区二区| av黄色在线| 99久久精品费精品国产| www日本高清| 99国产精品免费视频| 青娱乐自拍偷拍| 瑟瑟视频在线| 亚洲韩国精品一区| 亚洲人成无码www久久久| 男人天堂久久| 亚洲国产精品高清久久久| 无码人妻精品一区二区中文| 88国产精品视频一区二区三区| 国内外成人免费激情在线视频| 91porny九色| 国产成人精品免费视频网站| 色乱码一区二区三在线看| 色在线视频网| 欧美日韩一区二区三区四区五区| a级片在线观看视频| 久久综合av| 欧美中文字幕视频在线观看| 国产色在线视频| 久久久久久电影| 免费拍拍拍网站| 国产不卡精品在线| 一区二区三区亚洲| 激情五月色婷婷| 国产精品一区二区在线观看不卡| 日韩福利影院| 青青青免费在线视频| 日韩欧美国产一区在线观看| a毛片毛片av永久免费| 黄色亚洲在线| 91国产在线免费观看| 最新av网站在线观看| 欧美色视频日本版| 高清中文字幕mv的电影| 亚洲不卡av不卡一区二区| 国产精品久久久久一区二区| 视频午夜在线| 婷婷亚洲久悠悠色悠在线播放| 91av免费观看| 中文字幕av亚洲精品一部二部| 国产精品一区二区性色av| 韩国中文免费在线视频| 黑人精品xxx一区一二区| www.黄色网| 欧美人成在线| 97超级碰碰| 3d玉蒲团在线观看| 欧美一级高清大全免费观看| 国精产品视频一二二区| 日本在线不卡视频一二三区| 欧美日韩一区综合| 人人视频精品| 亚洲欧美在线x视频| 中文字幕国产在线观看| 久久久综合九色合综国产精品| aa视频在线播放| 日韩大片在线免费观看| 5566成人精品视频免费| 色综合久久网女同蕾丝边| 婷婷综合另类小说色区| 中文字幕一区二区久久人妻网站| 国产亚洲网站| 欧美亚洲国产免费| 丁香久久综合| 爱福利视频一区| 精品区在线观看| 亚洲国产视频直播| 国产成人无码一区二区在线观看| 国产视频欧美| 亚洲精品不卡| 激情不卡一区二区三区视频在线| 欧美精品亚州精品| 成人乱码一区二区三区| 欧美性猛交视频| 91麻豆制片厂| 国产一区二区女| 成年女人18级毛片毛片免费| 色婷婷久久久| 国产精品一区二区女厕厕| av激情在线| 日韩av网址在线| 中文在线字幕免费观| 亚洲欧美日韩国产一区二区三区| av漫画在线观看| 久久综合图片| 强开小嫩苞一区二区三区网站 | 色综合色综合| av一区二区三区免费| 久草在线中文最新视频| 最近的2019中文字幕免费一页| www.成人免费视频| 色综合天天综合狠狠| 麻豆明星ai换脸视频| 99精品视频一区| www.国产视频.com| 在线看片成人| 一区二区在线高清视频| 麻豆成人入口| 91九色单男在线观看| 日韩欧美精品一区二区三区| 色青青草原桃花久久综合| 男人天堂综合网| 欧美性大战久久久久久久蜜臀| 欧美日韩中文字幕在线观看| 久久午夜电影网| 可以看的av网址| 青青草97国产精品免费观看 | 18加网站在线| 亚洲人成电影网站色| 亚洲国产精品视频在线| 欧美中文字幕一区二区三区亚洲| 久久久久久国产精品视频| 国产精品美女久久久久av爽李琼| 国产伦精品一区三区精东| 久国产精品韩国三级视频| 欧美视频第一区| 欧美xxx在线观看| 亚洲国产精品一区二区第一页| 美女扒开腿让男人桶爽久久动漫| 成人综合网网址| 欧美va视频| 欧美夜福利tv在线| 成人av影院在线观看| 久久亚洲影音av资源网| 国产一级二级三级在线观看| 亚洲二区在线播放视频| av一级黄色片| 欧美高清hd18日本| 中文字幕你懂的| 在线免费观看成人短视频| 亚州国产精品视频| 亚洲综合视频网| caoporn91| 亚洲啪啪综合av一区二区三区| 精品人妻中文无码av在线 | 成人免费视频入口| 久久久久综合网| 三级黄色片网站| 成人激情综合网站| 日批视频免费看 | 久久久久久久久免费看无码| 国产69精品久久99不卡| 一起草最新网址| 国产精品系列在线播放| 日韩av自拍偷拍| 精品在线免费视频| 午夜激情av在线| 另类的小说在线视频另类成人小视频在线| 精品视频一区二区在线| 亚洲在线免费| 97在线播放视频| 日日嗨av一区二区三区四区| 可以免费在线看黄的网站| 国产精品毛片| 999精品网站| 日本午夜精品一区二区三区电影| 苍井空浴缸大战猛男120分钟| 国产亚洲精品久久久久婷婷瑜伽| 免费在线激情视频| 午夜在线观看免费一区| 东京热加勒比无码少妇| 老牛影视一区二区三区| 一区二区三区视频在线观看免费| 老牛国产精品一区的观看方式| 宅男噜噜噜66国产免费观看| 美女视频免费一区| 天天做天天干天天操| 国产超碰在线一区| 特大黑人巨人吊xxxx| 国产欧美日韩精品a在线观看| 日本一级免费视频| 亚洲图片激情小说| 国产中文字幕免费| 色婷婷狠狠综合| 亚洲中文字幕在线一区| 91精品国产综合久久福利| 人妻视频一区二区三区| 日韩精品一区二区三区第95| av中文天堂在线| 欧美另类高清videos| 日本在线高清| 国产在线精品自拍| 懂色av一区二区| 日本午夜精品一区二区三区| 午夜激情久久| 欧美日韩精品在线一区二区 | 视频一区二区三区在线看免费看| 亚洲午夜久久久影院| 国产一区久久精品| 777777777亚洲妇女| 91麻豆精品一二三区在线| 极品日韩久久| 天堂美国久久| 国产免费黄色av| 激情六月婷婷综合| 日本免费福利视频| 一区二区三区四区蜜桃| 久久精品视频2| 精品国偷自产国产一区| av在线第一页| 午夜剧场成人观在线视频免费观看| 91精品美女| 国产亚洲福利社区| 亚洲澳门在线| 韩国中文字幕av| 99久久精品国产网站| 国产稀缺精品盗摄盗拍| 在线一区二区三区| 三级视频在线看| 久久精品亚洲精品| 亚洲成人av观看| 国产尤物91| 欧美在线网址| 在线不卡一区二区三区| 久久久久久免费| 日本一二三区视频| 7878成人国产在线观看| 岛国最新视频免费在线观看| 久久久爽爽爽美女图片| 97久久中文字幕| 亚洲精品一区二区三区av| 亚洲在线日韩| 欧美xxxxx精品| 一区二区视频在线| 国产免费一区二区三区最新不卡| 亚洲一区www| 成人免费无遮挡| 黑人巨大精品欧美一区二区小视频| 羞羞色午夜精品一区二区三区| 午夜dv内射一区二区| 91丝袜高跟美女视频| 91亚洲精品国产| 一级成人黄色片| 国产一区二区三区不卡av| 国产日韩欧美精品综合| 色婷婷**av毛片一区| 欧美婷婷久久五月精品三区| 久久99视频精品| 99久久99九九99九九九| 亚洲美女搞黄| 日本aⅴ免费视频一区二区三区| 日韩av一二区| 精品美女久久久久久免费| 亚洲天堂电影网| 国产精品久久久久久久妇| 国产调教精品| 欧美日韩国产中文字幕| 六月丁香婷婷激情| 久久97超碰色| 亚洲欧美另类日本| 制服丝袜亚洲网站| 二区三区在线观看| 亚洲一区中文字幕| 国产精品s色| 亚洲婷婷在线观看| 午夜视频一区在线观看| 亚州av在线播放| 国产成人中文字幕| 日本一区二区高清不卡| 成人黄色一级大片| 亚洲免费观看高清完整版在线观看熊 | 久久精品99无色码中文字幕| 成人网av.com/| 欧美美女黄色网| 99久久婷婷国产综合精品电影| 久久久久99精品成人片我成大片| 国产亚洲欧洲高清| 99久久久国产| 黄色成人在线看| 久久久.com| 国产伦精品一区二区三区视频痴汉 | 91免费看片网站| 欧美日韩国产成人精品| yy1111111| 欧美三级韩国三级日本一级| 超碰免费公开在线| 国产欧美日韩综合一区在线观看 | mm131国产精品| 亚洲人成影院在线观看| 亚洲欧美激情另类| 国产91久久婷婷一区二区| 天天做天天爱综合| 久久久久久婷婷| 欧美日韩你懂的| 俺来俺也去www色在线观看| 青青草成人网| 国产乱妇无码大片在线观看| 国产精品午夜影院| 久久精品视频网站| 亚洲三级精品| 无人码人妻一区二区三区免费| 精品久久久久久中文字幕一区奶水 | 国产精品香蕉一区二区三区| 欧美一级特黄视频| 久久久av亚洲男天堂| 亚洲日本三级| 少妇搡bbbb搡bbb搡打电话| 欧美在线看片a免费观看| 啪啪免费视频一区|