c# – 底层Enum类型的UInt32导致编译器错误

参见英文答案 >
C# int, Int32 and enums                                    2个

我知道推荐的底层类型应该是Int32,因为它符合CLS,而UInt32不是,但我不知道是为什么这一行会导致编译器错误:

public enum Strength : UInt32

这条线没有:

public enum Strength : uint

我假设uint只是UInt32的别名,我有什么遗漏吗?我浏览了MSDN文档,但我可能很容易错过了一些东西.

注意:使用VS12,每当我使用整数类型的非别名名称(Int32,int …等)时,就会出现此错误.

最佳答案 您是正确的uint是UInt32的别名,但编译器依赖于类型作为预期的别名. int和Int32也是如此.这是解析器的编译器错误.解析器期望来自其内部语法规则的特定字符串. Stack Overflow上还有一些关于此的帖子.

这是另一篇有更多信息的帖子. C# int, Int32 and enums

点赞