C# 为什么';Int32值';是否显示为枚举成员?

C# 为什么';Int32值';是否显示为枚举成员?,c#,enums,C#,Enums,我正在对我声明的枚举进行一些检查,我想知道为什么Int32 value_uu总是显示为每个声明的枚举中的第一个枚举成员,因为它是成员的类型,而不是成员本身 要测试的示例代码: [TestMethod] public void TestEnumMember() { var type = typeof(Colors); var info = type.GetTypeInfo(); var members = info.DeclaredMembers.ToArray();

我正在对我声明的枚举进行一些检查,我想知道为什么
Int32 value_uu
总是显示为每个声明的枚举中的第一个枚举成员,因为它是成员的类型,而不是成员本身

要测试的示例代码:

[TestMethod]
public void TestEnumMember()
{
    var type = typeof(Colors);
    var info = type.GetTypeInfo();
    var members = info.DeclaredMembers.ToArray();
    foreach (var member in members)
    {
        Debug.WriteLine(member);
    }
}

public enum Colors
{
    Red,
    Blue,
    Green
}
输出:

Debug Trace:
Int32 value__
Colors Red
Colors Blue
Colors Green

嗯,不总是这样。尝试将枚举的定义更改为
公共枚举颜色:byte
。值成员将是
字节值

您将看到枚举的第一个成员是枚举值的实际备份存储