基础枚举类型的UInt32导致编译器错误

时间:2014-01-09 06:19:20

标签: c# enums

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

public enum Strength : UInt32

并且这一行没有:

public enum Strength : uint

我假设uint只是UInt32的别名,我有什么遗漏的吗?我浏览了MSDN文档,但我很容易错过了什么。

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

1 个答案:

答案 0 :(得分:2)

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

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