枚举、位操作 CLR学习第十二课

一、枚举:继承关系System.Object-->system.ValueType--->System.Enum(值类型)

,可对其进行格式化输出。
二、判断一个枚举是否合法:Enum.IsDefined;枚举类型转换:Enum.Parse;可以把数

值转换为枚举类型。

三、位标记:定义一个枚举类型,在枚举类型上加上[Flags]属性。
如:
        [Flags]
enum Actions
{
 Read =0X0001,
 Write=0X0002,
 Delete=0X0004,
 Query=0X0008,
 Sync=0X00010,
}
调用
Actions actions=Actions.Read|Actions.Write;//值是:0x0003
Console.WriteLine(actions.ToString());//输出"Read、Wirte"

他们的值是2的N次方,如上可以用^、|、&等符号进行运算实现从数据组合。如果我

们直接给一个值,系统也会为自动进行位运算,返回当前值是由哪几个已经定义的位

数据组合而成的。就像上面一样,我们不用再定义一个可读写的枚举。

实例:Actions a=(Actions) Enum.Parse(typeof(Actions),“28”,false)
console.writeline(a.tostring())//输出 Delete、Query、Sync
当,Parse的方法被调用时,他们同样会检查枚举类型上是否应用了[Flags]定制特性

,如果有Parse将会吧字符串拆分成单个的符合,然后查询每一个符合的值,并对相

应的值执行位或(只允许位操作,禁止算术操作 加、减)操作,最后得到一个枚举

类型的实例。

posted @ 2011-04-12 10:54  狼-志  阅读(276)  评论(0编辑  收藏  举报