命名空间:   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. Webform Session、Cookies传值,跳转页面方式

    Session:每个独立的浏览器都会创建一个独立的Session,不是一台电脑一个Session 存放位置:服务器上 作用:只要里面有内容,那么这个网站中所有的C#端都能访问到这个变量 优点:安全,速 ...

  2. 一些linux包相关命令

    针对centos 查看CentOS版本方法: lsb_release -a #result------------ LSB Version: :base-4.0-amd64:base-4.0-noar ...

  3. Unity - Apk包的代码与资源提取

    最近在研究如何给Unity游戏进行加密,让别人不能轻易破解你的apk包,不过网上的加密方法都是有对应的破解方法~_~!!结果加密方法没找到好的,逆向工程倒会了不少.今天就来讲解如何提取一个没做任何保护 ...

  4. wampserver解决“不能切换在线”及运行“404问题”

    初次安装使用wampserver2.2,由于各个电脑安装的应用或是电脑型号不一样会出现以下问题: 1.安装后,不能出切换“服务器在线”或是“服务器离线” 2.设置站点后,运行编写好的代码出现404错误 ...

  5. ajax知识整理

    HTTP服务 1.服务器 服务器类型 服务类型:文件服务器.数据库服务器.邮件服务器.Web服务器等: 操作系统:Linux服务器.Windows服务器等: 应用软件:Apache服务器.Nginx ...

  6. 阿里聚安全受邀参加SFDC安全大会,分享互联网业务面临问题和安全创新实践

    现今,技术引领的商业变革已无缝渗透入我们的日常生活,「技术改变生活」的开发者们被推向了创新浪潮的顶端.国内知名的开发者技术社区 SegmentFault 至今已有四年多了,自技术问答开始,他们已经发展 ...

  7. 排列组合算法的javascript实现

    命题:从成员数为N的集合S中,选出M个元素,分别求其排列与组合结果集,即 A(N, M)与C(N, M) js解法: function queue(arr, size){ if(size > a ...

  8. Python黑帽编程2.9 面向对象编程

    Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...

  9. iOS开发系列—Objective-C之内存管理

    概述 我们知道在程序运行过程中要创建大量的对象,和其他高级语言类似,在ObjC中对象时存储在堆中的,系统并不会自动释放堆中的内存(注意基本类型是由系统自己管理的,放在栈上).如果一个对象创建并使用后没 ...

  10. 我只是想开个饭店—— JavaIO模型的演变

    Java的IO...真的是我所见过的高级语言中.最最复杂的... 看着这个图我也是醉了. 但是不知不觉间,java的IO已经更新到了NIO.2了,IO库早已经不止是这个样子了,那么这个过程中,它们经历 ...