zoukankan      html  css  js  c++  java
  • .NET中的 枚举

      我理解的枚举就是编程中约定的一个“可选值”;例如QQ的在线状态,分别有    在线,Q我吧,隐身,忙碌等等。。。我觉得这就是一个枚举。

    1.普通枚举

      1) 实例

        public enum UserState

      {

             QMe,

             OnLine,

             OffLine     //后面省略

      }

       ps:像上边的枚举,可以单独写在一个CS文件中。

       2)普通枚举的性质

         1. 互斥性

         2. 每一个值都有一个数值来表示

         3. 枚举在编译时,就已经用数值来表示了。

       3)字符串转换成枚举

           (UserState)Enum.Parse(typeof(UserState),"Red") ;

       4)枚举转换成数值、字符串

           (int)myColor.Red;

            myColor.Red.ToString();

    2.标识枚举

         但一个事物具有多个属性时,普通枚举就不够用了。

         普通枚举是互斥的,标识而枚举是可以组合的。

       1)定义

          [Flags]   //使用以后结果是Tostring()的,而不是数字的。

          public enum GoodMan

          {

               高=1,

               富=2,

               帅=4     //这里必须是2的N次方,切不能重复。

          }

    2)状态组合(或运算)

         GoodMan winter = GoodMan.高| GoodMan.富| GoodMan.帅;

    3)判定winter中是否具有某个枚举值(与运算)

        if(winter&GoodMan.高==GoodMan.高)

  • 相关阅读:
    51nod 1227 平均最小公倍数
    51nod 1238 最小公倍数之和 V3
    「G2016 SCOI2018 Round #2」B
    51nod 1258 序列求和 V4
    2301: [HAOI2011]Problem b
    POJ
    NOIP2017解题报告
    笔记-[ZJOI2014]力
    题解-Little C Loves 3 III
    李超线段树
  • 原文地址:https://www.cnblogs.com/mcad/p/4183678.html
Copyright © 2011-2022 走看看