参见英文答案 >
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