• 枚举、位操作 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将会吧字符串拆分成单个的符合,然后查询每一个符合的值,并对相

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

    类型的实例。

  • 相关阅读:
    slice()、substring()、substr()的区别用法
    程序员如何快速上手一个自己不太熟悉的新项目?有什么技巧?
    计算重复字符串长度
    计算机视觉算法研发岗招聘要求
    C++进阶STL-2
    C++进阶STL-1
    拼硬币
    序列找数
    寻找合法字符串
    字符串是否由子串拼接
  • 原文地址:https://www.cnblogs.com/gowhy/p/2013393.html
Copyright © 2020-2023  润新知