枚举是一个指定的常数,其基础类型可以是除 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. [翻译]用PostCSS改善你的CSS代码质量

    “代码质量”这个术语对于程序员来说并不陌生.毕竟,每个开发人员都知道,代码只是能工作是不够的.它还应该具备其他要素:它应该是可读的,良好的格式和一致性.它也应该符合一些标准的量化指标.不过这些在写CS ...

  2. linux 进阶命令___0001

    查看指定目录下最大的文件 #查看/var目录下前10个最大的文件 #Find top 10 largest files in /var directory (subdirectories and hi ...

  3. linux下安装配置apache+nagios

    1.安装依赖包 yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel 2.创建nagios用户和用户组 # us ...

  4. 运行【guns】spring boot 的四种方式

    IDE 运行 运行带有main方法类 用mvn运行Spring-boot项目 在父项目中运行 mvn clean mvn install 在主项目中运行 mvn spring-boot:run 用JA ...

  5. Pandas与SQL比较

    由于许多潜在的Pandas用户对SQL有一定的了解,因此本文章旨在提供一些如何使用Pandas执行各种SQL操作的示例. import pandas as pd url = 'tips.csv' ti ...

  6. IOS-HTTP协议

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  7. GAN作用——在我做安全的看来,就是做数据拟合、数据增强

    from:https://www.zhihu.com/question/56171002/answer/155777359 GAN的作用,也就是为什么GAN会火了(有部分原因可能是因为Lecun的赞赏 ...

  8. Could not publish server configuration for Tomcat v6.0 Server at localhost.错误问题解决

    经常在使用tomcat服务器的时候 总会发生一些莫名其妙的错误. 就像下面这个错误: 在配置文件中存在多个/MyWeb的配置,导致不能发布服务. 错误信息: Could not publish ser ...

  9. 浅析C#中抽象类和接口的区别

    声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况.不能创建abstract 类的实例.然 ...

  10. //可以不保存在session中, 并且前面我保存在request,这里session也可以获取 chain.doFilter(request, response); //只有登录名不为空时放行,防止直接登录 成功的页面

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOE ...