枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型。
如果没有显式声明基础类型,则使用 Int32。
编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。
定义默认基数从O开始,也可指定数值。

範例一:

enum Days { Saturday=, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
enum Colors { Red = , Green = , Blue = , Yellow = }; Colors myColors = Colors.Red;
string strColor=myColors.tostring();
int IntColor=(int)myColors ;
//位或
Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;
//位与
Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow;
//遍历
foreach (string s in Enum.GetNames(typeof(Days)))
Response.Write(s + "--" + Enum.Parse(typeof(Days), s).ToString());
//转换
Colors mc=Colors Enum.Parse(typeof(Colors ), "red");
if (System.Enum.IsDefined(typeof(Days), "Monday"))
Days ds= (Days)Enum.Parse(typeof(Days), "Monday");

範例二:

public enum NoticeType
{
Notice = 'A',
LabRule = 'H',
HotInformation = 'N',
Column = 'C',
All = '',
Null = ''
}
//新建枚举类型
NoticeType noticeType1 = NoticeType.Column; //把枚举类型转换为string d="Column"
string d = noticeType1.ToString(); //取得枚举类型的基数 dd='C'
char dd = (char)noticeType1; //通过基数取得对应的枚举类型 noticeType2 = NoticeType.Notice
//(NoticeType)'A'; 两种方式都可以
NoticeType noticeType2 = (NoticeType)Char.Parse("A"); //通过名称取得枚举类型 noticeType3 = NoticeType.Notice
NoticeType noticeType3 = (NoticeType)Enum.Parse(typeof(NoticeType), "Notice");

获得文字描述:

using System.ComponentModel; // 先添加该引用
enum Direction
{
[Description("this means facing to UP (Negtive Y)")]
UP = ,
[Description("this means facing to RIGHT (Positive X)")]
RIGHT = ,
[Description("this means facing to DOWN (Positive Y)")]
DOWN = ,
[Description("this means facing to LEFT (Negtive X)")]
LEFT =
}; //使用如下方法来获得文字描述:
using System.Reflection;
using System.ComponentModel;
public static String GetEnumDesc(Direction e)
{
FieldInfo EnumInfo = e.GetType().GetField(e.ToString());
DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[]) EnumInfo.
GetCustomAttributes (typeof(DescriptionAttribute), false);
if (EnumAttributes.Length > )
{
return EnumAttributes[].Description;
}
return e.ToString();
}

C#枚举Enum[轉]的更多相关文章

  1. MySQL字段之集合(set)枚举(enum)

    MySQL字段之集合(set)枚举(enum) (2008-12-23 13:51:23) 标签:it  分类:MySQL 集合 SET mysql> create table jihe(f1 ...

  2. 枚举 enum

    typedef enum : NSUInteger { <#MyEnumValueA#>, <#MyEnumValueB#>, <#MyEnumValueC#>, ...

  3. 枚举enum学习小记

    参考文献: [1]C++程序设计语言(特别版), 裘宗燕译, 机械工业出版社 [2]C++ Primer (3rd Ed.), S.B. Lippman and J. Lajoie, 人民邮电出版社 ...

  4. Java 枚举(enum) 详解7种常见的用法

    Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...

  5. Python 枚举 enum

    Python 枚举 enum enum 标准模块在 3.4 版本才可以使用,3.3 以下版本需要独立安装:https://pypi.python.org/pypi/enum34#downloads,官 ...

  6. 【转】结构struct 联合Union和枚举Enum的细节讨论

    结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...

  7. 枚举Enum和常量0之间的恩怨

    1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...

  8. C++和Java中枚举enum的用法

    在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...

  9. 【转】枚举enum学习小记

    原帖: http://hi.baidu.com/yuleishou/item/caacae872190031ec216272f 表示在vs2008下实验了一下,有些东西和原帖的还是不一样的,都贴在这里 ...

随机推荐

  1. uiautomator-CTS上运行,出xml报告

      一.CTS 介绍与命令说明 主要介绍: CTS下载与配置 CTS目录说明 CTS基本命令说明 Windows系统下运行CTSCTS 全称Compatibility Test Suite 兼容性测试 ...

  2. LeetCode——Find the Difference

    LeetCode--Find the Difference Question Given two strings s and t which consist of only lowercase let ...

  3. “玲珑杯”ACM比赛 Round #13 B -- 我也不是B(二分排序)

    题意:开始有一个空序列s,一个变量c=0,接着从左往右依次将数组a中的数字放入s的尾部,每放一个数字就检测一次混乱度K,当混乱度k大于M时就清空序列并让c=c+1 K = Bi * Vi(1<= ...

  4. ixgbe RSS原理分析

    这个月,一直在搞ixgbe RSS,希望能使得收包均衡,结果没成功,但是对网卡的收包原理理解得更深入些. 1.网卡硬件通过网线或者光纤收包. 2.网卡的RSS功能根据网络五元组计算得到32bit的ha ...

  5. Android中获取手机电量信息

    有些时候我们需要在我们的应用上为用户展示当前手机的电量,这时候我们就需要用到广播了,我们都知道在动态注册广播的时候,我们需要传入一个BroadcastReceiver类对象,还有一个意图过滤器Inte ...

  6. 更新CentOS 6.7源为阿里源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  7. 《JavaScript高级程序设计》第6章补充 继承

    基于原型链继承 将父类的实例赋给子类的prototype来实现继承. 原理:父类的实例有父类所有的实例属性和原型方法,将它赋给子类的prototype后,子类的创建的实例就有会__proto__属性指 ...

  8. 【scala】类的定义和单例对象

    一.类的定义 Scala类的定义跟JAVA中类的定义基本是一样的. 示例 class ChecksumAccumulator{ var sum = 0;//Scala默认关键字为public priv ...

  9. 【lightoj-1025】The Specials Menu(区间DP)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1025 [题目大意] 求一个字符串删去任意字符可以构成多少个不同的回文串 [分析 ...

  10. Spring 依赖注入(一、注入方式)

    Spring是一个依赖注入(控制反转)的框架,那么依赖注入(标控制反转)表现在那些地方了? 即:一个类中的属性(其他对象)不再需要手动new或者通过工厂方法进行创建,而是Spring容器在属性被使用的 ...