C#枚举类型

枚举是一个指定的常数,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用 Int32。

定义

默认基数从0开始,也可指定数值。

enum Days 
{ 
  Saturday,     //默认基数从O开始
  Sunday,       //1
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday
};

enum Colors 
{ 
  Red = 1,    //指定默认基数 1
  Green,      //2
  Blue = 4,
  Yellow = 8
};

public enum NoticeType
{
    Notice = 'A',
    LabRule = 'H',
    HotInformation = 'N',
    Column = 'C',
    All = '1',
    Null = '0'
};

使用

Enum 提供一些实用的静态方法:

  • 比较枚举类的实例的方法
  • 将实例的值转换为其字符串表示形式的方法
  • 将数字的字符串表示形式转换为此类的实例的方法
  • 创建指定枚举和值的实例的方法。
Colors myColors = Colors.Red;                                          //新建枚举对象
NoticeType noticeType = NoticeType.Column;                             //新建枚举对象

string strColor = myColors.tostring() ;                                //Enum-->String,strColor值为"Red"
string strColor = Enum.GetName(typeof(Colors),2));                     //Enum-->String,strColor值为"Green"
string strColor = Enum.GetName(typeof(Colors), Colors.Blue));          //Enum-->String,strColor值为"Blue"

string[] strDayArray = Enum.GetNames(typeof(Days));                    //Enum-->String[],用于遍历

Days ds = (Days)Enum.Parse(typeof(Days), "Monday");                    //String-->Enum
Colors mc = (Colors)Enum.Parse(typeof(Colors ), "red");                //String-->Enum
NoticeType nt=(NoticeType)Enum.Parse(typeof(NoticeType), "Notice");    //String--Enum


int IntColor=(int)Colors.Red;                                          //Enum-->基类,IntColor值为1
byte byteColor=(byte)Colors.Green;                                     //Enum-->基类
char dd = (char)noticeType;                                            //Enum-->基类,dd值为'C'

Colors color = (Colors)2;                                              //基类-->Enum
Colors color = (Colors)Enum.ToObject(typeof(Colors), 2);               //基类-->Enum
NoticeType noticeType = (NOticeType)'A';                               //基类-->Enum
NoticeType noticeType = (NoticeType)Char.Parse("A");                   //基类-->Enum 另一种方式  


bool isdefined = Enum.IsDefined(typeof(Colors), 2));                   //判断基类值为2的枚举是否存在
bool isdefined = System.Enum.IsDefined(typeof(Days), "Monday")         //判断Name值为"Monday"的枚举是否存在


Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;            //位或
Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow;            //位与

参考资料

http://www.cnblogs.com/an-wl/archive/2011/04/14/2015815.html

http://www.cnblogs.com/pato/archive/2011/08/15/2139705.html

原文地址:https://www.cnblogs.com/pixy/p/5095697.html