【文件属性】:
文件名称:EnumHelper枚举操作类
文件大小:4KB
文件格式:CS
更新时间:2012-01-06 05:26:04
EnumHelper 枚举 操作类
/** 1. 功能:枚举操作类,枚举类型创建,转换
* 2. 作者:杨磊
* 3. 创建日期:2008-1-30
* 4. 最后修改日期:2008-11-10
**/
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
///
/// 枚举操作类,枚举类型创建,转换
///
public class EnumHelper
{
#region 通过字符串获取枚举成员实例
///
/// 通过字符串获取枚举成员实例
///
/// 枚举名,比如Enum1
/// 枚举成员的常量名或常量值,
/// 范例:Enum1枚举有两个成员A=0,B=1,则传入"A"或"0"获取 Enum1.A 枚举类型
public static T GetInstance(string member)
{
return CommFun.ConvertTo(Enum.Parse(typeof(T), member, true));
}
#endregion
#region 获取枚举成员名称和成员值的键值对集合
///
/// 获取枚举成员名称和成员值的键值对集合
///
/// 枚举名,比如Enum1
public static Hashtable GetMemberKeyValue()
{
//创建哈希表
Hashtable ht = new Hashtable();
//获取枚举所有成员名称
string[] memberNames = GetMemberNames();
//遍历枚举成员
foreach (string memberName in memberNames)
{
ht.Add(memberName, GetMemberValue(memberName));
}
//返回哈希表
return ht;
}
#endregion
#region 获取枚举所有成员名称
///
/// 获取枚举所有成员名称
///
/// 枚举名,比如Enum1
public static string[] GetMemberNames()
{
return Enum.GetNames(typeof(T));
}
#endregion
#region 获取枚举成员的名称
///
/// 获取枚举成员的名称
///
/// 枚举名,比如Enum1
/// 枚举成员实例或成员值,
/// 范例:Enum1枚举有两个成员A=0,B=1,则传入Enum1.A或0,获取成员名称"A"
public static string GetMemberName(object member)
{
//转成基础类型的成员值
Type underlyingType = GetUnderlyingType(typeof(T));
object memberValue = CommFun.ConvertTo(member,underlyingType);
//获取枚举成员的名称
return Enum.GetName(typeof(T), memberValue);
}
#endregion
#region 获取枚举所有成员值
///
/// 获取枚举所有成员值
///
/// 枚举名,比如Enum1
public static Array GetMemberValues()
{
return Enum.GetValues(typeof(T));
}
#endregion
#region 获取枚举成员的值
///
/// 获取枚举成员的值
///
/// 枚举名,比如Enum1
/// 枚举成员的常量名,
/// 范例:Enum1枚举有两个成员A=0,B=1,则传入"A"获取0
public static object GetMemberValue(string memberName)
{
//获取基础类型
Type underlyingType = GetUnderlyingType(typeof(T));
//获取枚举实例
T instance = GetInstance(memberName);
//获取枚举成员的值
return CommFun.ConvertTo( instance,underlyingType);
}
#endregion
#region 获取枚举的基础类型
///
/// 获取枚举的基础类型
///
/// 枚举类型
public static Type GetUnderlyingType(Type enumType)
{
//获取基础类型
return Enum.GetUnderlyingType(enumType);
}
#endregion
#region 检测枚举是否包含指定成员
///
/// 检测枚举是否包含指定成员
///
/// 枚举名,比如Enum1
/// 枚举成员名或成员值
public static bool IsDefined(string member)
{
return Enum.IsDefined(typeof(T), member);
}
#endregion
}