最近碰到了枚举类型,就顺便整理下。

枚举的基类Enum,可以是除 Char 外的任何整型。不做显示声明的话,默认是整形(Int32)。

声明一个Enum类型

        /// <summary>
/// 颜色
/// </summary>
public enum People
{
[Description("婴儿")]
Baby = 0, [Description("儿童")]
Children = 5, [Description("青年")]
Youth = 20, [Description("老人")]
Old = 60 }

Enum转化为String类型:

(1)利用Object.ToString()方法:

People.Baby.ToString();

(2)利用Enum的静态方法GetName:

Enum.GetName(typeof(People), 0)
Enum.GetName(typeof(People), People.Baby)

String类型转化为Enum:

(1)利用Enum的静态方法Parse:

(People)Enum.Parse(typeof(People), "Children")

Enum转化为整数:

(1)强制转化化

(int)People.Youth;
(byte)People.Youth;//byte的数值范围,0-255,小心有些会溢出

int转化为Enum

(People)(60)
(People)Enum.ToObject(typeof(People), 60)

获取Enum字符串数组

foreach (var item in Enum.GetNames(typeof(People)))
{
Console.WriteLine(item);
}

判断某个整形是否定义在Enum中

Enum.IsDefined(typeof(People), 60);//返回true或false

结果为:

获取枚举类型头上的Description值:

class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetDes(People.Youth));
Console.ReadKey();
}
public static string GetDes(Enum value)
{
return ((DescriptionAttribute)Attribute.GetCustomAttribute(value.GetType().GetField(value.ToString()), typeof(DescriptionAttribute))).Description;
}
public enum People
{
[Description("婴儿")]
Baby = , [Description("儿童")]
Children = , [Description("青年")]
Youth = , [Description("老人")]
Old = }
}

结果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABhCAIAAAAcKXnvAAAIAklEQVR4nO2b6U8UZxzH54Vvitp64N2qHKICwqII1hNbryKIF7W1R2pak3q74IEHlyIsIIJaa9WmGquNxlRr2jRpAolvjHciiab/wWIb5RJ2F8VOX/xmH5+dmZ2dPR5A+H7yfTHz22dmZ2Y/+e3DsyqdOnWmqamVRfKEf8kgVqv15s1bVqvVarXyRdrl696KZWW2YA7XFrW7ukV25fz1657c5xNQDVOdjUc1pqzMZnzN7BEZ35f2IzA+oZn78uvT5y9AkiRp3bqvnzz5N0ixtA/OLzPoqek+98DOGbxY3j6qwMQy+Dz4e9fessEjMnjTHiGWJElJSUmPH/8dpFgmHdItGjy1wIrBi8V/2CLEUt27Tw9YU9fSc8WSJGnEiBHXrl0PQCz+9nS3tXeu1YK/LO1L/p7TW1H3grUPxfhwk26prjkkYpl/U+MT+nVfwYolSVK/fv0C61hmHrSIWxKdYNwKoVha780/c5OqhTzSo4e3ESTkkR49vC0DEGoUsbpdcKSXBWIhQuIhVlj0xiDTf8LG/hM2UQbEbBoQs3lAzOYBEzcPVLJl4KQtb1Mmb32HJXbbIErctkFx2wbHbR8ct31w/PbB8duHxFuHTLEOmWIdSknIGZqQE56QE56YE56YG56YOywxd5gld5hlxzDLjuGWHcOTKDtHTFUycuqukdOUjEreNSp5N2X09N2jp+eNnp43OiVvTEremJQ9Y1L2vJvqzoy977G8v28sZea+sTP3j6PM2j9+1v7xs/LHz8ofPzs/YnZ+xOyCiDkFEXMKIilzCyPnFkbNLYyaVxg1ryhqXlH0vKLotKLotOIJacUT5iuJmX8g5gMlEz88yDJpwcFJC0omLSiZvJByaPLCQ7GLKKWxi0vjWJaUxbsz5SObknRbQrotIb08Ib08YWl54tLyxKUViRkViRkVlowKS0alJbPSklmZlFmZtKwyadnhqZSsw1OzqqZlVU1bTjmSvPxI8gol01dWU1JWVqesqqGkrqpJXV2Tuvpo6uqjM7Ipx2ZkH4NYEKurxCousZnM4uy9YdEbIBbEMiXWrTv3dHPn7v279x/cuffg9t37VCkusYVFrodYEMuUWI6OlyZTXGJ7q1vFor9sVWJRUSUWFQMWiw7vArHojXqnWJ2dnbV19dkFV9YcuPxp2aXPqi5+efx8g93e4XKyzN54rsPl1BWLX8wgsWibicUPCEYsxSrPjkVFVceiInUs1XKLGbEUq8R3LGYVE4sqAYiluk0DsdgYXixW1IpFdWOx1OtYJMerzs7auvqtJ/6wnv499+xvOy9czbt8xaRY9K5mOlZ3iTUqebdbKfeG/2JRJWCx6HChYk1JV9xKSC93u+W1Y2nFmra8yptYuh2LBvsQq7XNUVtXX3jxryzbmfSKY5k11Su+rySxXC6ny+nocDlXnKzsMrFoZBeIRbs9UCxZlnuDWM/bHLV19UtKv1tadTTr+JGVP1Rk/1TaYLe7XC7WsTb8uVUrluwJicV2zYjFBvvsWDRMNXl3W+UxeWdWBdaxXlvlFou/R14sVmRiqR4IicVXeLGowk/eZVl+2tTGi6U6IYmlKqrEIvivQlZUiUWoxCKYWKzCi8WPNBSr3VlbV59ZXbP8xOFVp8vXnCtZe7GowW5/0eHivw3Ndywq+hSLKoPilI0eK5Zux6JKxJwC2uDFMtmxqGgsVuwixa1Yt0/UsWg73r1hIBbtWjIUmVQdizZUHUvZMJxjUdFXx2p31tbVrzhZmf1j2SfnD37+S8FXV/Y02O0dTkcXiMUwEIsGqJYbqKhabqCiarmBimbEogHa5Qaqa8VisK9CVjEWiyqq5QbVOQMTS/tVyJ+zG8T6+OyhtReKv7i0f92ved9c39Fgt99z43I6W1qam5saBXUsn5N3GtkDxfI2x6JXAxDraVPb5IVsCh8CsWi7ezpWu8N1/uertXX1fHix2tvaGhsbG58982uOJcuydrmB0M6xZK5j0W6oxFK9Nb/cQBUzYo3jZlraOZbs+VXI4JcbWNGbWFThxZJlmYlFsMk7X1QtN9j/aWHb2o4ly3JgcyzZ7RZbbmB1r2I1tTrlVx2y/KKzo11+5ZLlV7L84r+XDpfT4XQ4nj9vbW5pbmlpft7a0i0LpHT1qpV3KqpW3qkY8Mo7Hd4FK++KYeZW3hXDPP8qpGJPXyDdm39Q95fB0vLDZRXVB7jKopU5+EmnK3/S0WlXnn8V9mixwqK+fStyvZmERa7Hj9D4rRD/bAZiQSyI1ZvEQpBQxUOsIgBChFqsNABCgY5Ykh43btzQrfs7BvQVIBYQgq5YN8yhOpW/40FvJlQdS9ez4C8PvKl4EyuAduWzAvoQIelYuq9CrD6NViyTEyxt38IEC7zGZMcyg9az4C4NvMkYiOVv+4FY4DXGYukeArGAb4LvWL6mYZhp9UlC2LECGwZ6JyGcY6mAWH0adCwgBL/EogrEAr7xt2OZ1wVi9WlCuEAKwGsgFhACxAJCgFhACBALCAFiASFALCAEiAWEALGAECAWEALEAkKAWEAI5v+XTndfKXijgFhACBALCAFiASFg8g6EALGAECAWEALEAkKAWEAIEAsIAWIBIUAsIASIBYQAsYAQIBYQAsQCQoBYQAgQCwgBYgEhQCwgBIgFhACxgBAgFhACxAJCgFhACBALCAFiASFALCAEiAWEALGAECAWEALEAkKAWEAIEAsIAWIBIUAsIASIBYQAsYAQIBYQwf+v7O/kXutIggAAAABJRU5ErkJggg==" alt="" />

C#中enum类型的更多相关文章

  1. MYSQL中 ENUM 类型

    MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...

  2. Java中Enum类型的序列化(转)

    在Java中,对Enum类型的序列化与其他对象类型的序列化有所不同,今天就来看看到底有什么不同.下面先来看下在Java中,我们定义的Enum在被编译之后是长成什么样子的. Java代码: Java代码 ...

  3. java中enum类型的使用

    java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我 ...

  4. mysql中enum类型

    ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果 ...

  5. mysql中enum类型理解

    ENUM是枚举类型,它虽然只能保存一个值,却能够处理多达65535个预定义的值.下面是我写的一个mysql语句 CREATE TABLE student( id INT(11) PRIMARY key ...

  6. MySQL中enum类型数据,要传入字符串

    问题来源:公司业务,某张表中一个字段定义为: enum('0','1','2','3','4','5','6','7','8','9','10') NOT NULL DEFAULT '0' 某天跑脚本 ...

  7. MYSQL中 ENUM 类型的详细解释

    ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果将一个无效值插 ...

  8. mysql中enum的用法

    字段 类型 长度/值*1 整理 属性 Null 默认2 额外 注释 enum         说明:enum类型的字段,若长度值写长度1/2,报错 (1)  数据长度为1,则为0,1,2… (2)   ...

  9. .net MVC 中枚举类型Enum 转化成 下拉列表的数据源

    第一次写技术博文,记录下工作中遇到的问题,给自己的知识做个备份,也希望能帮助到其他的同学 最近接手了公司的一个新的项目.有个页面涉及相关设计. 分享一个经常用到的吧. 方法一: 直入主题吧 我们的目的 ...

随机推荐

  1. [C#进阶系列]专题一:深入解析深拷贝和浅拷贝

    一.前言 这个星期参加了一个面试,面试中问到深浅拷贝的区别,然后我就简单了讲述了它们的之间的区别,然后面试官又继续问,如何实现一个深拷贝呢?当时只回答回答了一种方式,就是使用反射,然后面试官提示还可以 ...

  2. 价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集

    美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集 这是我收到的CEH官方发来的邮件,参加CEH认证培训原价为1424.25刀,可以给我便宜到1282刀.只有一个感觉,心在流血.站在这价值120 ...

  3. 【原创】GC/垃圾回收简介

    GC简介 1 GC机制 1.1 对象 从计算机的角度,装有数据的内存空间 1.2 作用 将内存垃圾的释放自动化 1.3 本质 将已经引用不到的对象视为死亡,将死亡的对象找出来并且作为垃圾进行回收 2 ...

  4. 004. Asp.Net Routing与MVC 之二: 请求如何激活Controller和Action

    上篇讲到 请求到达 MvcRouteHandler ,并且透过 IRouteHandler.GetHttpHandler 获取到了真正的处理程序 MvcHandler 这次我们看看,MvcHandle ...

  5. 桃小蛋 简单粗暴BFC总结—附代码图和效果图

    说明:问题图与解决图的区别:黄色箭头那行代码的有和无. BFC 定义 BFC(Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域, ...

  6. excel怎么固定第一行

    这里给大家介绍一下怎么固定表格的第一行,或者说怎么固定表格的表头. 1.我这里有一个成绩表,希望固定住其第一行. 2.选择单元格A2 注意:你只需要选择所要固定行的下一行的任一单元格即可!!! 3.然 ...

  7. Atitit 图像扫描器---基于扫描线

    Atitit 图像扫描器---基于扫描线 调用范例 * @throws FileExistEx */ public static void main(String[] args) throws Fil ...

  8. salesforce 零基础学习(四十)Custom Settings简单使用

    有时候,项目中我们需要设置类似白名单的功能,即某些用户或者某种Profile的用户不走一些校验或者走一些校验,这时,使用Custom Settings功能可以很好的解决这一需求. Custom Set ...

  9. 日志框架只打印出Mybatis SQL的配置

    项目比较大,各种乱七八糟的框架.Log4j配置的是INFO级别. 然而今天开发的时候我需要log4j打印出SQL的执行情况. 先改log4j的rootLogger级别到DEBUG......后果就是各 ...

  10. Vector和Stack源码分析/List集合的总结

    序言 这篇文章算是在这list接口下的集合的最后一篇了,前面ArrayList.LinkedList都已经讲解完了,剩下就Vector和Vector的子类Stack啦.继续努力.一步一个脚印, --W ...