我正在对声明的枚举进行一些检查,我想知道为什么 Int32 value__
始终显示为每个声明的枚举中的第一个枚举成员,因为它是成员的类型而不是本身就是一个成员?
要测试的示例代码:
[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
最佳答案
嗯,并非总是如此。尝试将枚举的定义更改为public enum Colors : byte
。那么值成员将是Byte value__
。
您将看到枚举的第一个成员是枚举值的实际后备存储。
关于c# - 为什么 'Int32 value__' 显示为枚举成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41179733/