我知道推荐的底层类型应该是Int32,因为它符合CLS,而UInt32则不是,但我无法弄清楚为什么这行会导致编译器错误:
public enum Strength : UInt32
并且这一行没有:
public enum Strength : uint
我假设uint
只是UInt32
的别名,我有什么遗漏的吗?我浏览了MSDN文档,但我很容易错过了什么。
注意:使用VS12,每当我使用整数类型的非别名名称(Int32,int ...等)时,就会出现此错误。
答案 0 :(得分:2)
您是正确的uint
是UInt32
的别名,但编译器依赖于类型作为预期的别名。 int
和Int32
也是如此。这是解析器的编译器错误。解析器期望来自其内部语法规则的特定字符串。 Stack Overflow上还有一些关于此的帖子。
这是另一篇有更多信息的帖子。 C# int, Int32 and enums