1、基本转化
- 通过枚举值转化为具体得枚举成员
(EnumType)mouduleId
- 枚举成员转换为string
EnumType.Tosting()
- 枚举成员转换为 枚举成员值
(int)EnumType
2、相同枚举成员之间转化
- 枚举成员的string值转化为具体得枚举对象
/// <summary>
/// convert to enum by string
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="strEnum"></param>
/// <returns></returns>
public static T StringConvertToEnum<T>(string strEnum) where T : Enum
{
return (T)Enum.Parse(typeof(T), strEnum);
}
- 两个枚举对象之间得相互转化:
通过其中一个枚举成员值 找另外一个具有相同成员的枚举对象;
必要条件:两个转化枚举对象的枚举成员一致
/// <summary>
/// value of enum is must same
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="M"></typeparam>
/// <param name="orginEnum"></param>
/// <returns></returns>
public static async Task<T> oneEnumIntConvertToOtherEnum<T, M>(int orginEnum) where T : Enum where M : Enum
{
return (T)Enum.Parse(typeof(T), ValueConvertEnum<M>(orginEnum).ToString());
}
- 两个枚举对象之间得相互转化:
通过枚举对象 找另外一个枚举具体对象;
必要条件:两个转化枚举对象的枚举成员一致
/// <summary>
/// value of enum is must same
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="M"></typeparam>
/// <param name="orginEnum"></param>
/// <returns></returns>
public static async Task<T> OneEnumConvertToOtherEnum<T, M>(M orginEnum) where T : Enum where M : Enum
{
return (T)Enum.Parse(typeof(T), orginEnum.ToString());
}
3、文中术语
public enum EnumTypeOne
{
enumOne= 65,
enumTwo= 66
}
public enum EnumTypeTwo
{
enumOne= 12,
enumTwo= 11,
enumThree= 20
}
两个枚举对象具有相同枚举成员:EnumTypeOne中的 enumOne 和 EnumTypeTwo enumOne
枚举成员: enumOne 、 enumTwo
枚举成员值: 65、 66,12 ....