给定一个enum
public enum Week
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
您可以执行以下操作:
static void Main(string[] args)
{
// enum to int
int i=(int)Week.Thursday;
// int to enum;
Week day=(Week)3;
// enum to string
string name=Week.Thursday.ToString();
string fun=Enum.GetName(typeof(Week), 6);
string agh=Enum.GetName(typeof(Week), Week.Monday);
string wed=EnumName(Week.Wednesday);
// string to enum
Week apt=(Week)Enum.Parse(typeof(Week), "Thursday");
// all values of an enum type
Week[] days=(Week[])Enum.GetValues(typeof(Week));
// all names of an enum type
string[] names=Enum.GetNames(typeof(Week));
}
static string EnumName<T>(T value)
{
return Enum.GetName(typeof(T), value);
}
Edit 1
如果你想从一个转换enum
到另一个enum
基于基础数值的不同类型(转换为整数以及从整数转换),然后使用以下内容:
/// <summary>
/// Casts one enum type to another based on the underlying value
/// </summary>
/// <typeparam name="TEnum">The type of the enum.</typeparam>
/// <param name="otherEnum">The other enum.</param>
public static TEnum CastTo<TEnum>(this Enum otherEnum)
{
return (TEnum)Enum.ToObject(typeof(TEnum), Convert.ToInt32(otherEnum));
}
用作
public enum WeekEnd
{
Saturday = Week.Saturday,
Sunday = Week.Sunday
}
static void Main(string[] args)
{
var day = WeekEnd.Saturday.CastTo<Week>();
// Week.Sunday
}