枚举转化和判断方法

转载 2011年01月12日 13:08:00

定义枚举:
public enum DisplayType
{
  All=10,
  Up=20,
  Down=30
}

1.数值转化
(1)字符转化为枚举
string str="up";
DisplayType displayType;
displayType=(DisplayType)System.Enum.Parse(typeof(DisplayType),str,true);
Response.Write(displayType.ToString());

结果是:Up
Enum.Parse 方法第3个参数,如果为 true,则忽略大小写;否则考虑大小写。

(2)数字转化为枚举
int i=30;
DisplayType displayType;
displayType=(DisplayType)System.Enum.Parse(typeof(DisplayType),i.ToString());
Response.Write(displayType.ToString());
结果是:Down
(3)枚举转化为字符
DisplayType displayType=DisplayType.Down;
string str=displayType.ToString();
Response.Write(str);
结果是:Down

(4)枚举转化为数字
方法一:
DisplayType displayType=DisplayType.Down;
int i=Convert.ToInt32(displayType.ToString("d"));
Response.Write(i.ToString());
结果是:30

方法二:
DisplayType displayType=DisplayType.Down;
int i=((IConvertible)((System.Enum)displayType)).ToInt32(null);
Response.Write(i.ToString());
结果是:30

枚举的父类是System.Enum,父类继承了接口IConvertible

2.数值判断
有时候枚举数值由外界输入,这时候我们就得判断输入数值的正确性了.
(1)字符判断
方法一:
string str="u";
if(Enum.IsDefined(typeof(DisplayType),str))
{
 Response.Write("ok");
}
else
{
 Response.Write("error");
}
结果是:error

方法二:
string str="Up";
try
{
 Enum.Parse(typeof(DisplayType),str);
 Response.Write("ok");
}
catch(ArgumentException)
{
 Response.Write("error");
}
结果是:ok

Enum.Parse 方法的第2个参数,value 为空字符串或只包含空白或value 是一个名称,但不是为该枚举定义的已命名常数之一就发生异常

(2)数字判断
int i=30;
if(Enum.IsDefined(typeof(DisplayType),i))
{
 Response.Write("ok");
}
else
{
 Response.Write("error");
}
结果是:ok

数据类型的转化和判断方法

1.判断字符串是否为可用的数字(如在关于钱的数字上) public static String getValidNum(String str) { try { ...
  • zhang1206214477
  • zhang1206214477
  • 2015年04月21日 09:14
  • 261

Mybatis 与 枚举 实现自动转换

Mybatis 与 枚举 实现自动转换
  • lunatic_xian
  • lunatic_xian
  • 2017年03月31日 18:04
  • 714

枚举类(三):枚举类中几个常用的方法

枚举类(三):枚举类中几个常用的方法
  • wangyanming123
  • wangyanming123
  • 2016年05月09日 21:21
  • 1639

向Java枚举类型中添加新方法

除了不能继承enum之外,可将其看做一个常规类。甚至可以有main方法。 注意:必须先定义enum实例,实例的最后有一个分号。 下面是一个例子:返回对实例自身的描述,而非默认的toString返回...
  • vonzhoufz
  • vonzhoufz
  • 2014年06月17日 10:30
  • 2360

java反射测试代码!枚举测试,beanUtils测试等....挺有用的。。。

java反射测试代码!枚举测试,beanUtils测试等....挺有用的。。。 完整通过反射自定义框架请看别一个博客:http://blog.csdn.net/liangrui1988/article...
  • liangrui1988
  • liangrui1988
  • 2013年11月13日 22:29
  • 1632

带有无参构造方法、有参构造方法的枚举

枚举就相当于一个类,其中也可以定义构造方法,成员变量,普通方法和抽象方法。 枚举元素必须位于枚举体中的最开始的位置,枚举元素类表的后要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举...
  • escdelete
  • escdelete
  • 2013年12月20日 21:31
  • 1528

java 枚举类比较是用==还是equals?

一般在Java代码里面,涉及到比较2个值的问题,除了是简单的一般数据类型意外,字符串除外,我们都是使用==来判断是否相等的,但是对于字符串和对象以及封装类型的数据都是使用equals方法,来判断2个值...
  • qq_27093465
  • qq_27093465
  • 2017年04月19日 10:23
  • 13642

JavaScript中的可枚举属性与不可枚举属性

在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。 一、怎么判断属性是否可枚举 ...
  • mrhaoxiaojun
  • mrhaoxiaojun
  • 2017年04月27日 11:40
  • 393

Java enum 枚举还可以这么用

在大部分编程语言中,枚举类型都会是一种常用而又必不可少的数据类型,Java中当然也不会例外。然而,Java中的Enum枚举类型却有着许多你意想不到的用法,下面让我们一起来看看。 1、可以在enu...
  • huang9012
  • huang9012
  • 2014年09月07日 00:57
  • 3127

mybatis枚举自动转换实现

在设计数据库的时候,我们有时候会把表里的某个字段的值设置为数字或者为英文来表示他的一些特殊含义。就拿设置成数字来说,假如1对应是学生,2对应是教师,在java里面定义成这样的枚举,但是一般使用myba...
  • fighterandknight
  • fighterandknight
  • 2016年05月29日 04:11
  • 8311
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:枚举转化和判断方法
举报原因:
原因补充:

(最多只允许输入30个字)