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

时间: 2024-08-01 06:27:57

C#枚举类型的相关文章

C#枚举类型的常用操作总结

枚举类型是定义了一组"符号名称/值"配对.枚举类型是强类型的.每个枚举类型都是从system.Enum派生,又从system.ValueType派生,而system.ValueType又从system.Object派生,所以枚举类型是指类型. 编译枚举类型时,C#编译器会把每个符号转换成类型的一个常量字段.C#编译器将枚举类型视为基元类型. 1.获取枚举列表:         /// <summary>         /// 获取枚举列表         /// <

获取枚举类型Description特性的描述信息

C#中可以对枚举类型用Description特性描述. 如果需要对Description信息获取,那么可以定义一个扩展方法来实现.代码如下: public static class EnumExtensions { public static string GetDescription(this object value) { if (value==null) return string.Empty; Type type = value.GetType(); var fieldInfo = ty

C++ Primer 笔记——枚举类型

1.和类一样,每个枚举类型定义了一种新的类型.枚举属于字面值常量类型. 2.C++包含两种枚举:限定作用域的和不限定作用域的.C++11新标准引入了限定作用域的枚举类型. enum class /*struct*/ MyEnum { A = 0}; // 限定作用域的枚举 enum class /*struct*/ MyEnum1 { A = 0 }; // 限定作用域的枚举可以有重复的名字,使用时也必须加上作用域 enum MyEnum2 { B = 0 }; // 不限定作用域的枚举 enu

笔记:枚举类型

枚举类型的定义格式如: public enum Size{ SMALL,MEDIUM,LARGE,EXTRA_LARGE} ? ? 实际上,这个声明定义了一个类 size,该类是一个特殊的类,可以定义自己的数据字段.方法.可以实现接口,也可以定义自己的构造器.但枚举类使用 enum 定义后在编译后默认继承了 java.lang.Enum 类,而不是普通的继承 Object类.Enum 声明类继承了 Serializable 和 Comparable 两个接口.且采用 enum 声明后,该类会被编

结构体 枚举类型

结构体 class Program { struct student { public int num; public string name; public string sex; public one oone; public int[] qq; } struct one { public string aa; public int bb; } static void Main(string[] args) { ////struct ////初始化结构体 //student stu = ne

C#之枚举类型

参考: http://www.cnblogs.com/an-wl/archive/2011/04/14/2015815.html 惯例先上MSDN: https://msdn.microsoft.com/zh-cn/library/cc138362(v=vs.110).aspx 枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法.例如,假设您必须定义一个变量,该变量的值表示一周中的一天.该变量只能存储七个有意义的值.若要定义这些值,可以使用枚举类型.枚举类型是使用en

利用枚举类型实现统计

口袋中有5种颜色的小球,每次从口袋中任意取3个,问得到3种不同颜色的小球的可能取法? #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<iomanip> using namespace std; int main() { enum color{red,yellow,blue,white,black};//声明枚举类型color color pri;    //定义color类型的变量pri int i, j,

WebService中使用枚举类型

1.在服务端编写枚举值 public enum BackWorkType { None, Test } 2.为每一个枚举值添加下面属性,添加下面属性后服务可以通过对象字符串进行序列化 [EnumMember(Value = "None")] 3.添加完后枚举变成 public enum BackWorkType { [EnumMember(Value = "None")] None, [EnumMember(Value = "Test")] Te

C# 获取与解析枚举类型的 DescriptionAttribute

原文:C# 获取与解析枚举类型的 DescriptionAttribute System.ComponentModel.DescriptionAttribute 这个 Attribute,经常被用来为属性或事件提供说明,这个说明是可以被本地化的.在一些用户界面中,就可以利用这个 Attribute 提供一些额外的信息,就像 Visual Studio 中所做的,如图 1 所示: 图 1 可以看到,对 AutoSizeMode 的说明,被显示在了下面的框中. 但是,界面中的枚举项就没这么好的待遇了

C# 枚举类型 enum (一)

1.枚举使用enum关键字来声明,与类同级.枚举可以和类并列也可以 写在类里面,不能写在方法里. 2.枚举是值类型,隐式继承自System.Enum,不能手动修改. System.Enum本身是引用类型,继承自 System.ValueType. 3.·枚举本身一般不加访问修饰符,要加的话只能是internal 或public; ·枚举都是隐式密封的(sealed),不允许作为基类派生子类. 4.枚举里面的成员只能是默认公共的静态的(public.static),不能 有访问修饰符; 5.·每种