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 转化成 下拉列表的数据源
第一次写技术博文,记录下工作中遇到的问题,给自己的知识做个备份,也希望能帮助到其他的同学 最近接手了公司的一个新的项目.有个页面涉及相关设计. 分享一个经常用到的吧. 方法一: 直入主题吧 我们的目的 ...
随机推荐
- Apache HttpAsyncClient 如何设置per request timeout
最近做一个项目时用到HttpAsyncClient:因项目所需,要求能对一个具体的request 设置连接和读写超时:但发现在HttpAsyncClient中,只有在创建一个HttpAsyncClie ...
- 使用git将代码push到osc上
1.下载git客户端 2.在osc上创建项目 ①使用:git bash here ②在目录下执行:git init ③ssh-keygen -t rsa -C "xqs@gmail.com& ...
- android知识杂记(二)
记录项目中的android零碎知识点,用以备忘. AsyncQueryHandler 继承与handler,可以用于处理增删改(ContentProvider提供的数据) 例如:query = new ...
- AtomineerUtils爆破过程记录
AtomineerUtils是国外的一款用于生成源代码注释的一款VS插件,官方网站:http://www.atomineerutils.com/products.php 通过链接,可以看出这款插件的功 ...
- 统计第一个空字符前面的字符长度(java实现)
举例来说:char buf[] = {'a','b','c','d','e','f','\0','x','y','z'}当输入N=10或20,期待输出是6:当输入N=3或5,期待输出是3或5. pac ...
- RabbitMQ(五) -- topics
RabbitMQ(五) -- topics `rabbitmq`中的`topic exchange`将路由键和某模式进行匹配,从而类似于正则匹配的方式去接收喜欢的信息. topic exchange ...
- 使用hexo+github搭建免费个人博客详细教程
[TOC] 本文目录(注意无法点击): 前言 体验更加排版请访问原文链接:http://blog.liuxianan.com/build-blog-website-by-hexo-github.htm ...
- Android手动签名
在生成release build时可实现自动签名,所谓手动签名,就是在命令行下完成签名,落实到Android Studio里面,就是在terminal里面做. 下面是三个命令,第一个签名,第二个验证, ...
- C#中使用反射获取结构体实例
一般用反射获取类对象的实例比较简单,只要类有一个无参构造函数或没有显示声明带参的构造函数即可使用如下代码 static void Main(string[] args) { Type type = t ...
- java-面向对象练习2
1.按要求编写Java应用程序: (1)编写西游记人物类(XiYouJiRenWu) 其中属性有:身高(height),名字(name),武器(weapon) 方法有:显示名字(printName), ...