C#中enum类型
最近碰到了枚举类型,就顺便整理下。
枚举的基类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,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" alt="" />
C#中enum类型的更多相关文章
- MYSQL中 ENUM 类型
MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...
- Java中Enum类型的序列化(转)
在Java中,对Enum类型的序列化与其他对象类型的序列化有所不同,今天就来看看到底有什么不同.下面先来看下在Java中,我们定义的Enum在被编译之后是长成什么样子的. Java代码: Java代码 ...
- java中enum类型的使用
java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我 ...
- mysql中enum类型
ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果 ...
- mysql中enum类型理解
ENUM是枚举类型,它虽然只能保存一个值,却能够处理多达65535个预定义的值.下面是我写的一个mysql语句 CREATE TABLE student( id INT(11) PRIMARY key ...
- MySQL中enum类型数据,要传入字符串
问题来源:公司业务,某张表中一个字段定义为: enum('0','1','2','3','4','5','6','7','8','9','10') NOT NULL DEFAULT '0' 某天跑脚本 ...
- MYSQL中 ENUM 类型的详细解释
ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串("") 或 NULL: 如果将一个无效值插 ...
- mysql中enum的用法
字段 类型 长度/值*1 整理 属性 Null 默认2 额外 注释 enum 说明:enum类型的字段,若长度值写长度1/2,报错 (1) 数据长度为1,则为0,1,2… (2) ...
- .net MVC 中枚举类型Enum 转化成 下拉列表的数据源
第一次写技术博文,记录下工作中遇到的问题,给自己的知识做个备份,也希望能帮助到其他的同学 最近接手了公司的一个新的项目.有个页面涉及相关设计. 分享一个经常用到的吧. 方法一: 直入主题吧 我们的目的 ...
随机推荐
- 【转】各种语言中的urlencode方法
URLENCODE和URLDECODE是比较常用的URL参数转换方法,为以后使用方便,自己归类一下. 原文地址:http://blog.sina.com.cn/s/blog_3f195d25010 ...
- .NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来
简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...
- UML-用例图
用例图是指由参与者.用例以及它们之间的关系构成的用于描述系统功能的视图.用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统.子系 ...
- 一个空行引起的阿里云负载均衡上部署https证书的问题
今天在阿里云上购买了WoSign的https证书,在证书签发后,在控制台下载证书文件,一共有2个文件,一个是.key文件(私钥文件),一个是.pem文件(证书文件). 然后在阿里云负载均衡“证书管理” ...
- C#中的线程二(Cotrol.BeginInvoke和Control.Invoke)
C#中的线程二(Cotrol.BeginInvoke和Control.Invoke) 原文地址:http://www.cnblogs.com/whssunboy/archive/2007/06/07/ ...
- AMD加载器实现笔记(二)
AMD加载器实现笔记(一)中,我们实现了一个简易的模块加载器.但到目前为止这个加载器还并不能称为AMD加载器,原因很简单,我们还不支持AMD规范中的config配置.这篇文章中我们来添加对config ...
- 细说.NET 中的多线程 (一 概念)
为什么使用多线程 使用户界面能够随时相应用户输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时相应客户的输入,这个时候我们往往需要让大量运算和相应用户输入这两个行为在不同的线程中进行. ...
- 2013 duilib入门简明教程 -- 总结 (20)
duilib的入门系列就到尾声了,再次提醒下,Alberl用的duilib版本是SVN上第个版本,时间是2013.08.15~ 这里给出Alberl最后汇总的一个工程,戳我下载,效 ...
- Atitit 控制中心快速启动面板quick launcher
Atitit 控制中心快速启动面板quick launcher contralPanel.bat aaaControlPanel.contrlx /AtiPlatf_auto/src_atibrow/ ...
- C#教程(1) -- .Net与C#简介
(1).Net .Net指.Net平台或者是.Net Framework框架. 如果你把.Net平台想象成一个厨房,那么.Net Framework框架就是其中的柴米油盐酱醋茶. 如果你把.Net平台 ...