c#枚举类型概念和应用浅析

c#枚举类型概念和应用浅析

ID:20148765

大小:40.50 KB

页数:3页

时间:2018-10-08

c#枚举类型概念和应用浅析_第1页
c#枚举类型概念和应用浅析_第2页
c#枚举类型概念和应用浅析_第3页
资源描述:

《c#枚举类型概念和应用浅析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C#枚举类型概念及应用浅析C#枚举类型是什么呢?C#枚举类型是怎么使用的呢?C#枚举类型有什么需要注意的地方呢?那么本文就向你介绍这些内容。C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用enum关键字声明的。1.enum Days { Sunday, Monday, Tuesday,  2.Wednesday, Thursday,

2、 Friday, Saturday }; 3.enum Months : byte { Jan, Feb, Mar, Apr, 4. May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };  默认情况下,枚举中每个元素的基础类型是int。可以使用冒号指定另一种整数值类型,如前面的示例所示。以下是使用枚举而不使用数值类型的好处:明确为客户端代码指定哪些值是变量的有效值。在VisualStudio中,IntelliSense列出定义的值。如果不为枚举数列表中的元素指定值,则它们

3、的值将以1为增量自动递增。在前面的示例中,Days.Sunday的值为0,Days.Monday的值为1,依此类推。创建新的Days对象时,如果不显式为其赋值,则它将具有默认值Days.Sunday(0)。创建枚举时,应选择最合理的默认值并赋给它一个零值。这便使得只要在创建枚举时未为其显式赋值,则所创建的全部枚举都将具有该默认值。如果变量meetingDay的类型为Days,则只能将Days定义的某个值赋给它(无需显式强制转换)。如果会议日期更改,可以将Days中的新值赋给meetingDay:5.D

4、ays meetingDay = Days.Monday; 6.//... 7.meetingDay = Days.Friday; C#枚举类型说明:可以将任意整数值赋给meetingDay。例如,代码行meetingDay=(Days)42不会产生错误。但也不应该这样做,因为默认约定的是枚举变量只容纳枚举定义的值之一。将任意值赋给枚举类型的变量很有可能会导致错误。可以将任意值赋给枚举类型的枚举数列表中的元素,也可以使用计算值:8.enum MachineState 9.{ 10.PowerOff =

5、 0, 11.Running = 5, 12.Sleeping = 10, 1.Hibernating = Sleeping + 5 2.} C#枚举类型作为位标志可以使用C#枚举类型定义位标志,从而使该C#枚举类型的实例可以存储枚举数列表中定义的值的任意组合。(当然,某些组合在您的程序代码中可能没有意义或不允许使用。)创建位标志枚举的方法是应用System..::.FlagsAttribute属性并适当定义一些值,以便可以对这些值执行AND、OR、NOT和XOR按位运算。在位标志枚举中包含一个值为零

6、(表示“未设置任何标志”)的命名常量。如果零值不表示“未设置任何标志”,则请不要为标志指定零值。在下面的示例中,定义了Days枚举的另一个版本,即Days2。Days2具有Flags属性,且它的每个值都是2的若干次幂,指数依次递增。这样您就可以创建值为Days2.Tuesday和Days2.Thursday的Days2变量。3.[Flags] 4.enum Days2 5.{ 6.None = 0x0, 7.Sunday = 0x1, 8.Monday = 0x2, 9.Tuesday = 0x4, 

7、10.Wednesday = 0x8, 11.Thursday = 0x10, 12.Friday = 0x20, 13.Saturday = 0x40 14.} 15.class MyClass 16.{ 17.Days2 meetingDays = Days2.Tuesday 

8、 Days2.Thursday; 18.} C#枚举类型的问题:若要在某个枚举上设置标志,请使用逻辑OR运算符,如下面的示例所示:19.// Initialize with two flags using bitwise 

9、OR. 20.meetingDays = Days2.Tuesday 

10、 Days2.Thursday; 21.// Set an additional flag using bitwise OR. 22.meetingDays = meetingDays 

11、 Days2.Friday; 23.Console.WriteLine("Meeting days are {0}", meetingDays); 24.// Output: Meeting day

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。