枚举(enum)的常用操作

定义一个枚举用作后面的例子

enum EnumName{

    Red = 1,

    Green,

    Blue = 4,

    White = 8,

    Black = 16

}

 

枚举与符号、值的转换

EnumName en = EnumName.Green;

//1.枚举转值

int enValueInt = (int)en;    // enValueInt 被赋值为 2

string enValueStr = en.ToString("D");    // enValueStr 被赋值为 "2"

//2.值转枚举

EnumName em = (EnumName)8;    // em 被赋值为 EnumName.White

em = (EnumName)Enum.Parse(typeof(EnumName), 4.ToString());    // em 被赋值为 EnumName.Blue

//3.符号转枚举

em = (EnumName)Enum.Parse(typeof(EnumName), "Blue");    // em 被赋值为 EnumName.Blue

 

获取所有的符号名

foreach (string s inEnum.GetNames(typeof(EnumName)))   //通过 foreach 遍历枚举EnumName的定义

 

FlagsAttribute特性的使用

需要注意,枚举个元素的值除了1以外,必须是2的倍数,不能使用0,否则组合就得不到正确的值

EnumName em = EnumName.Red | EnumName.Blue | White;

Console.WriteLine(em);  // 输出 13;

如果在EnumName定义的时候加上 Flags 特性,如:

[Flags]

enum EnumName{ .... }

那么以上输出将变为   Red, Blue, White

加了Flags特性以后可以通过 Console.Write((int)em) 的方式来输出数字值;

 

对枚举组合(通过按位或符号“|”)运用switch
Type t = typeof(em);

string[] items = Enum.GetNames(t);

foreach (string s in items)

{

    EnumName n = (EnumName)Enum.Parse(t, s);

    if ((em & n) > 0)

    {

        switch(n){

            case EnumName.Red:   Console.Write(n); break;

            case EnumName.Green:   Console.Write(n); break;

            case EnumName.Blue:   Console.Write(n); break;

            case EnumName.White:   Console.Write(n); break;

            case EnumName.Black:   Console.Write(n); break;

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中枚举类型enum用于定义一组有限的常量。在Java 1.5之前,常量通常是使用public static final修饰的变量来定义的。而使用枚举类型可以更好地组织相关联的常量,并提供更多的方法操作枚举类型的声明格式为:enum EnumName {ENUM_VALUE1, ENUM_VALUE2, ...}。其中,ENUM_VALUE1、ENUM_VALUE2等是枚举类型的常量。 枚举类型在Java中有很多应用场景。例如,可以使用枚举类型来表示一周的星期几,定义颜色常量,定义状态等。通过使用枚举类型,可以增加代码的可读性和安全性。 此外,Java提供了一些与枚举类型相关的集合类,如EnumSet和EnumMap。EnumSet保证集合中的元素不重复,而EnumMap中的key是enum类型,而value可以是任意类型。这些集合类能够更方便地对枚举类型进行操作。 关于枚举类型的更多使用方法和规范,可以参考Java官方文档或阿里巴巴Java开发手册。123 #### 引用[.reference_title] - *1* *2* [Java枚举(enum)常用的用法总结](https://blog.csdn.net/qq_44866828/article/details/117380065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [Java 枚举(enum) 的常见用法和开发规范](https://blog.csdn.net/dichengyan0013/article/details/102347137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值