请考虑以下枚举:
enum TestSByte: sbyte { Value1, Value2, }
enum TestInt16: short { Value1, Value2, }
enum TestInt32: int { Value1, Value2, }
enum TestInt64: long { Value1, Value2, }
enum TestByte: byte { Value1, Value2, }
enum TestUInt16: ushort { Value1, Value2, }
enum TestUInt32: uint { Value1, Value2, }
enum TestUInt64: ulong { Value1, Value2, }
var types = new Type []
{
typeof(TestSByte),
typeof(TestInt16),
typeof(TestInt32),
typeof(TestInt64),
typeof(TestByte),
typeof(TestUInt16),
typeof(TestUInt32),
typeof(TestUInt64),
};
foreach (var type in types)
{
Console.WriteLine("Type: {0} - {1}.", type.Name, type.BaseType.Name);
}
输出:
Type: TestSByte - Enum.
Type: TestInt16 - Enum.
Type: TestInt32 - Enum.
Type: TestInt64 - Enum.
Type: TestByte - Enum.
Type: TestUInt16 - Enum.
Type: TestUInt32 - Enum.
Type: TestUInt64 - Enum.
我真正想要的是确定每个枚举的基本整数类型是什么。在观察窗口中浏览类型定义时,我找不到任何相同的指示。请指教。
答案 0 :(得分:2)
您可以使用Enum.GetUnderlyingType
:
Console.WriteLine("Type: {0} - {1}.", type.Name, Enum.GetUnderlyingType(type).Name);