C#枚举数值与名称的转换
在应用枚举的时候,时常需要将枚举和数值相互转换的情况。有时候还需要转换成相应的中文。下面介绍一种方法。
首先建立一个枚举:
/// <summary>
/// 颜色
/// </summary>
public enum ColorType
{
/// <summary>
/// 红色
/// </summary>
Red, /// <summary>
/// 蓝色
/// </summary>
Bule, /// <summary>
/// 绿色
/// </summary>
Green
}
获得枚举数值:
int code = ColorType.Red.GetHashCode();
有数值获得枚举名称:
string name1=ColorType.Red.ToString();
//或者
string name2= Enum.Parse(typeof(ColorType), code.ToString()).ToString();
以上获得的枚举名称,是英文,如果要获得相应的中文解释,可以利用Attribute来实现,代码如下:
/// <summary>
/// 颜色
/// </summary>
public enum ColorType
{
/// <summary>
/// 红色
/// </summary>
[Description("红色")]
Red, /// <summary>
/// 蓝色
/// </summary>
[Description("蓝色")]
Bule, /// <summary>
/// 绿色
/// </summary>
[Description("绿色")]
Green
}
在枚举中,加入Description,然后建立一个类,有如下方法用来把枚举转换成对应的中文解释:
public static class EnumDemo
{
private static string GetName(System.Type t, object v)
{
try
{
return Enum.GetName(t, v);
}
catch
{
return "UNKNOWN";
}
} /// <summary>
/// 返回指定枚举类型的指定值的描述
/// </summary>
/// <param name="t">枚举类型</param>
/// <param name="v">枚举值</param>
/// <returns></returns>
public static string GetDescription(System.Type t, object v)
{
try
{
FieldInfo oFieldInfo = t.GetField(GetName(t, v));
DescriptionAttribute[] attributes = (DescriptionAttribute[])oFieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
return (attributes.Length > ) ? attributes[].Description : GetName(t, v);
}
catch
{
return "UNKNOWN";
}
}
}
调用方法如下:
string name3=EnumDemo.GetDescription(typeof(ColorType), ColorType.Red)
C#枚举数值与名称的转换的更多相关文章
- C#枚举数值与名称的转换实例分享
首先建立一个枚举: 复制代码代码如下: /// <summary> /// 颜色 /// </summary> public enum ColorType ...
- 从一个int值显示相应枚举类型的名称或者描述
我正在做一个出入库管理的简单项目,在Models里定义了这样的枚举类型 public enum InOrOut { [Description("出库")] Out = , [Des ...
- C# 数值的隐式转换
Debug2.Log(5/8.0f, 5.0f/8, 5/8);//output:0.625, 0.625, 0 隐式数值转换表
- c# 根据枚举Value 获得名称
// 定义枚举类型enum sotype : int { book=1, pen=2, other=3 } // 输出名称 switch (Enum.GetName(typeof(sotype), 1 ...
- 枚举:Enum-Int-String之间的转换与扩展
示例枚举: public enum Color { [Description("红色")] Red, [Description("绿色")] Green = 7 ...
- springMVC源码分析--RequestToViewNameTranslator请求到视图名称的转换
RequestToViewNameTranslator可以在处理器返回的View为空时使用它根据Request获取viewName.RequestToViewNameTranslator提供的实现类只 ...
- 数据传递--------博客-----------springMVC源码分析--RequestToViewNameTranslator请求到视图名称的转换
参考来源:http://blog.csdn.net/qq924862077/article/details/54286976?utm_source=gold_browser_extension Req ...
- python 数值系列-进制转换
进制转换 前语: 如果您不通二进制,八进制,十六进制,请移步:http://www.360doc.com/content/17/0211/21/40101294_628326994.shtml 问题 ...
- java数值类型之间的转换
说明:图中6个实心箭头代表转换无信息丢失,3个虚线箭头表示可能有精度损失的转换.
随机推荐
- WebService只能在本地使用,无法通过网络访问的解决办法
问题描述:WebService只能在本地使用,无法通过网络访问. 解决方案:在web.config的<system.web></system.web>中间加入如下配置节内容: ...
- Android异常之 unable to write jarlist cache file
异常: android开发调试时候不能运行,出现 unable to write jarlist cache file 错误. 解决方法: 1.找到appcompt文件夹如下的位置.
- ios9下ionic框架报[$rootScope:infdig] 10 $digest() iterations reached. Aborting!的解决办法
升级ios9后,ionic开发的app会报[$rootScope:infdig] 10 $digest() iterations reached. Aborting!的错误,加上一个patch就可以解 ...
- pip
查看安装的包 pip list
- Hide Xcode8 strange log.
Product > Scheme > Edit Scheme Environment Variables set OS_ACTIVITY_MODE = disable
- session服务器Nginx+Tomcat+Memcached集群Session共享
cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...
- Java-泛型编程-使用通配符? extends 和 ? super
原文地址:http://blog.csdn.net/fw0124/article/details/42296283 泛型中使用通配符有两种形式:子类型限定<? extends xxx>和超 ...
- 【转】win7(windows7)下java环境变量配置方法
原文网址:http://jingyan.baidu.com/article/925f8cb836b26ac0dde0569e.html win7(windows7)下java环境变量配置方法,java ...
- Delphi Waring 的信息
Display PreferencesWarning messages (Delphi)Go Up to Delphi Compiler Directives (List) Index TypeSwi ...
- ios 照片编辑的view封装
转:http://www.cnblogs.com/xiaobaizhu/archive/2013/07/03/3170101.html 该控件有旋转,缩放,拖动,剪裁的功能,封装成了一个ImageCr ...