Getting Enum value via reflection

前端 未结 15 2507
梦如初夏
梦如初夏 2020-12-05 01:35

I have a simple Enum

 public enum TestEnum
 {
     TestOne = 3,
     TestTwo = 4
 }

var testing = TestEnum.TestOne;

And I want to retrieve

15条回答
  •  萌比男神i
    2020-12-05 02:28

    You can use the System.Enum helpers:

    System.Type enumType = typeof(TestEnum);
    System.Type enumUnderlyingType = System.Enum.GetUnderlyingType(enumType);
    System.Array enumValues = System.Enum.GetValues(enumType);
    
    for (int i=0; i < enumValues.Length; i++)
    {
        // Retrieve the value of the ith enum item.
        object value = enumValues.GetValue(i);
    
        // Convert the value to its underlying type (int, byte, long, ...)
        object underlyingValue = System.Convert.ChangeType(value, enumUnderlyingType);
    
        System.Console.WriteLine(underlyingValue);
    }
    

    Outputs

    3
    4

提交回复
热议问题