枚举转化和判断方法

转载 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

枚举转化和判断方法

定义枚举: public enum DisplayType {   All=10,   Up=20,   Down=30 } 1.数值转化 (1)字符转化为枚举 string str="up"; Di...
  • xiaoyatou_00
  • xiaoyatou_00
  • 2011年01月12日 13:08
  • 192

Java初学习 - 枚举类型,整型,字符串之间转换

enumint enum -> int: int i = enumType.value.ordinal(); int -> enum: enumType b= enumType.value...
  • cnmilan
  • cnmilan
  • 2016年05月31日 11:44
  • 441

关于省去if,else判断类型调用方法的解决方案,用枚举来解决

举个例子吧,比如:你需要根据一个字段的类型不同去调用不同的方法,也可以是根据值不同,给变量赋值调用同一个方法,这样在平常都少不了if{}else{}的判断。 public class TestOpe...
  • hzznb
  • hzznb
  • 2016年08月29日 13:26
  • 178

Mybatis 与 枚举 实现自动转换

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

枚举转化与判断

定义枚举: public enum DisplayType {   All=10,   Up=20,   Down=30 } 1.数值转化 (1)字符转化为枚举 string str="up"; Di...
  • netcpl
  • netcpl
  • 2006年12月29日 09:15
  • 718

使用枚举逻辑与判断条件

- (NSString *)repeatString2 {     if ( _repeats == 0 ) {         return @"未设定";     }         ...
  • zhaochunyang_0726
  • zhaochunyang_0726
  • 2014年11月08日 17:51
  • 836

判断枚举值是否存在

判断枚举值是否存在 枚举 Enum IsDefined SubMain BUGSoft
  • submain
  • submain
  • 2010年06月23日 16:57
  • 1553

C#判断参数是否在枚举Enum中

我有一个枚举类型: #region -酒的种类- public enum WineType { 白酒 = 3, 葡萄酒...
  • MajorMayer
  • MajorMayer
  • 2016年04月29日 15:53
  • 5182

mybatis枚举自动转换实现

在设计数据库的时候,我们有时候会把表里的某个字段的值设置为数字或者为英文来表示他的一些特殊含义。就拿设置成数字来说,假如1对应是学生,2对应是教师,在java里面定义成这样的枚举,但是一般使用myba...
  • fighterandknight
  • fighterandknight
  • 2016年05月29日 04:11
  • 9041

mybatis枚举自动转换(通用转换处理器实现)

在上一篇博客,mybatis枚举自动转换实现,已经介绍自动转换的实现步骤,并通过例子告诉大家如何实现枚举的自动转换了。 那么在博客的最后想到,定义一个万能的枚举转换处理器,具体怎么实现呢,相信大神们也...
  • fighterandknight
  • fighterandknight
  • 2016年05月29日 04:13
  • 5724
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:枚举转化和判断方法
举报原因:
原因补充:

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