我不明白的目的 Enum.GetUnderlyingType(Type enumType)
在MSDN文档并没有帮助:
返回指定枚举的基础类型.
似乎这会将指定类型转换enum为......其他内容.O_O
什么是基础类型?这看起来像实现的一些内部细节.为什么这是公开的?我为什么要关心实施?浏览实际的实现也没有帮助,该方法只是进行一些检查然后调用
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern Type InternalGetUnderlyingType(Type enumType);
Run Code Online (Sandbox Code Playgroud)
......我找不到源头.
任何人都可以对此有所了解吗?
请注意,您可以指定enum via的基础类型
enum Foo : long { One, Two };
Run Code Online (Sandbox Code Playgroud)
然后GetUnderlyingType是要返回long的typeof(Foo).
请注意,除了类型之外,基础类型可以是任何整数char类型.
枚举作为数字存储在内存中.默认情况下,int32.这是一个重要的类型.你可以改变:
public enum z : byte {
x = 257 // invalid
}
Run Code Online (Sandbox Code Playgroud)