命名空间:   System
程序集:  mscorlib(mscorlib.dll 中)

定义一个枚举类型

public enum Week
{
[Description("星期一")] //枚举描述
Monday=, //设置枚举的成员常量值
[Description("星期二")]
Tuesday=,
[Description("星期三")]
Wednesday =,
[Description("星期四")]
Thursday=,
[Description("星期五")]
Friday=,
[Description("星期六")]
Saturday=,
[Description("星期七")]
Sunday=
}
备注:
1.成员的值可以一样的,但是成员不行
例如:你可以设置 public enum Week{Monday=1,Tuseday=1}
但是你不可以出现有两个成员是一样的,例如:public enum Week{Monday=1,Monday=2,Tuseday=3}

2. Console.WriteLine((int)EnumDemo.Week.Friday);//输出 5

3. string[] array1 = Enum.GetNames(typeof(EnumDemo.Week));
Console.WriteLine(array1[1]); //输出Tuesday Enum.GetNames 方法 (Type) ,检索指定枚举中常数名称的数组。
参数enumTypeType: System.Type枚举类型。
返回值Type: System.String[]enumType 的常数名称的字符串数组

4. Array array2 = Enum.GetValues(typeof(EnumDemo.Week));
Console.WriteLine(array2.GetValue(1)); //输出:Tuesday Enum.GetValues 方法(Type)
参数enumTypeType: System.Type
返回值Type: System.Array

4. Type t = Enum.GetUnderlyingType(typeof(EnumDemo.Week));     
Console.WriteLine(t); //输出 System.Int32 Enum.GetUnderlyingType 方法 (Type)
参数enumType,基础类型将被检索的枚举。
返回值Type: System.Type enumType 的基础类型

6. //由值获取内容
int i = 1;
string Name = Enum.Parse(typeof(EnumDemo.Week), i.ToString()).ToString();
Console.WriteLine(Name);//输出:Monday 7. //由内容获得值
string Name2 = "Monday";
int j = Convert.ToInt32(Enum.Parse(typeof(EnumDemo.Week), Name2));
Console.WriteLine(j);//输出:1
8.
Dictionary<string, int> Sexlist = new Dictionary<string, int>();
string[] keys = Enum.GetNames(typeof(EnumDemo.Week));
Array values = Enum.GetValues(typeof(EnumDemo.Week));
for (int i = 0; i < keys.Length; i++)
{
Sexlist.Add(keys[i], (int)values.GetValue(i));
} 9.

/// <summary>
   /// 获取描述信息
   /// </summary>
   /// <param name="en"></param>
   /// <returns></returns>
   public static string description( Enum en)
   {
        Type type = en.GetType();
        MemberInfo[] memInfo = type.GetMember(en.ToString());
       if (memInfo != null && memInfo.Length > 0)
       {
          object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);
          if (attrs != null && attrs.Length > 0)
          return ((DescriptionAttribute)attrs[0]).Description;
       }
     return en.ToString();
   }

  Console.WriteLine(description(EnumDemo.Week.Friday));//输出:星期五











c# 枚举的更多相关文章

  1. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  2. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  3. Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...

  4. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

  5. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  6. .NET 基础一步步一幕幕[方法、结构、枚举]

    方法.结构.枚举 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,写void 方法名:P ...

  7. Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件

    在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...

  8. 用枚举enum替代int常量

    枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...

  9. c#编程基础之枚举

    枚举的意义就在于限制变量取值范围. 当可以确定的几种取值时才可以用. 如果输入一个字符串需要进行判断是否是我们需要的字符串时,则一般需要这样写: using System; using System. ...

  10. golang枚举类型 - iota用法拾遗

    在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...

随机推荐

  1. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  2. [LintCode] Climbing Stairs 爬梯子问题

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  3. Mariadb数据库设置及操作 一主多从 备份还原(实测笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 数据库版本信息 : 10.1.20- ...

  4. 安装wampserver遇到,无法启动此程序,丢失MSVCR110.dll

    这个问题遇到多次了,根据网上的解决办法,下载这个动态链接库文件,安装到指定位置重启系统后还是解决不了,其实这个文件有时候是存在的也会出现这个问题.问题截图如下 其实这个我认为是系统缺少了相关组组件的安 ...

  5. 判断是否为mac电脑 、还是windows操作系统

    /** * 是否为mac系统(包含iphone手机) * */ var isMac = function() { return /macintosh|mac os x/i.test(navigator ...

  6. CSS选择器中类和ID选择器的区别

    类和ID选择器的区别 学习了类选择器和ID选择器,我们会发现他们之间有很多的相似处,是不是两者可以通用呢?我们不要着急先来总结一下他们的相同点和不同点: 相同点:可以应用于任何元素不同点: 1.ID选 ...

  7. Javaee中文乱码解决方法

    分类: javaee2015-07-09 16:35 29人阅读 评论(0) 收藏 编辑 删除 post 中文乱码解决方式 接受数据的时候设置 request.setCharacterEncoding ...

  8. 使用JDBC的批处理功能

    package cn.itcast.jdbc; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedSt ...

  9. 那点你不知道的XHtml(Xml+Html)语法知识(DTD、XSD)

    什么是XHtml: 摘录网上的一句话,XHTML就是一个扮演着类似HTML的角色的XML. XHtml可当模板引擎应用: CYQ.Data 框架里有一套XHtmlAction模板引擎, 应用在QBlo ...

  10. ASP.NET Core 源码阅读笔记(1) ---Microsoft.Extensions.DependencyInjection

    这篇随笔主要记录一下ASP.NET Core团队实现默认的依赖注入容器的过程,我的理解可能并不是正确的. DependencyInjection这个项目不大,但却是整个ASP.NET Core的基础, ...