Dot-Net
獲取枚舉值的名稱
我正在嘗試創建一個函式,我們可以在其中獲取 EnumValue 的 Namevalue
例如:
Get_Enum_ValueName(DayOfWeek, 0)…這將返回“星期日”。
但是我的程式碼不起作用,它說沒有定義類型:
Private Function Get_Enum_ValueName(Of T)(ByVal EnumName As T, ByVal EnumValue As Integer) As String Return DirectCast([Enum].Parse(GetType(EnumName), EnumValue ), EnumName).ToString End Function
給定一個
enumpublic 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); }編輯 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 }